from django.template import RequestContext
from django.shortcuts import render
from .models import History
import datetime
def live_view(request):
context = RequestContext(request)
plays_list = History.objects.filter(date=datetime.date(2016,04,22))
context_list = {'plays':plays_list}
return render(request,'live.html',context_list)
myapp/templates/live.html:
{% extends 'base.html' %} {% block content %} {% for key, value in context_list.items %} {{ value }} {% endfor %} {% endblock %}
myapp/urls.py:
from myapp.views import live_view urlpatterns = [url(r'^live/$', live_view, name="live"),]
The output is a page that renders only the base.html template, with no content in the body. What's wrong with my view function or template rendering? Should I be inheriting from TemplateView?
On Jun 3, 2016 8:58 AM, "Dave N" <football...@gmail.com> wrote:
>
> Assuming my model contains data, I have myapp/views.py:
>
> from django.template import RequestContext
> from django.shortcuts import render
> from .models import History
> import datetime
>
> def live_view(request):
> context = RequestContext(request)
> plays_list = History.objects.filter(date=datetime.date(2016,04,22))
> context_list = {'plays':plays_list}
> return render(request,'live.html',context_list)
>
> myapp/templates/live.html:
>
> {% extends 'base.html' %}
> {% block content %}
> {% for key, value in context_list.items %}
> {{ value }}
> {% endfor %}
> {% endblock %}
>
You probably want {% for key, value in plays.items %} since there probably isn't a context variable called {{ context_list }}.
Install the Django-debug-toolbar. It'll tell you everything that's available in the template context and provide what templates were actually rendered on every page load, along with other cool stuff you didn't even know you needed to know.
-James