模板包含在另一个模板中时未显示数据

时间:2014-05-14 01:02:19

标签: django django-templates

我有一个包含以下行的html文件:

core.html
{% include 'events/events.html' %}

我还有另一个模板:

events.html
{% for event in events %}
    {{ event.event_name }} <br/>
{% endfor %}

当我打开加载events.html的网址时,它会完美地显示数据:

Evento 1 
Pentaho Workshop

但是当我打开加载core.html的主网址时,它什么都没有显示。如果我从for块中写出“blabla”,则会显示!!!

活动 - &gt; views.py

from django.shortcuts import render
from models import Events

def events_index(request):
    events = Events.objects.all()
    return render(request, "events/events.html", locals())

核心 - &gt; views.py

from django.shortcuts import render

def core_index(request):
    return render(request, "core/core.html", locals())

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

当您导航到events.html的URL时,会调用events_index视图,该视图会通过eventsevents = Events.objects.all()对象加载到模板上下文中。 core_index视图在上下文中不包含events,因此循环无需处理。如果您为“事件”模型添加导入,并将events = Events.objects.all()添加到core_index,则事情将更像您期望的那样。