2014-05-14 70 views
0

我有一个包含以下行的HTML文件模板不被显示的数据:当被包含在另一个模板

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

而且我有这个其他的模板:

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

当我打开加载的events.html URL它完美地展示了数据:

Evento 1 
Pentaho Workshop 

但是当我打开主要URL加载core.html它没有显示任何东西。如果我从for块中写出“blabla”,它会显示!

活动 - > 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()) 

核心 - > views.py

from django.shortcuts import render 

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

谁能帮助我?

+0

对应于'core.html'和'events.html'的视图是什么样的? – ob1quixote

+0

@ ob1quixote刚刚更新了问题以包含此信息。 –

回答

1

当您导航到的URL events.html调用它装载events对象为通过events = Events.objects.all()模板背景下events_index视图。 core_index视图在上下文中不包括events,因此循环无法处理。如果您为事件模型添加导入,并将events = Events.objects.all()添加到core_index,那么事情会更像您期望的。

+0

它工作!无论如何要把所有的逻辑和过程放在应用程序中来重用它?我期待它的工作方式是我想表达的想法......有没有办法做到这一点? –

+1

我想我明白你想要什么,并且你可以在另一个视图中包含一个视图,对于include的一些值,_q.v._ [“我可以从另一个视图内调用视图吗?”](http:// stackoverflow的.com /问题/ 4808329 /可-I-呼叫一个 - 视图 - 从中​​之另一个视图)。但是,我不认为我会。如果您需要在两个视图中引用Events模型,那就这样做。视图应该是模型的组合和必要的逻辑来返回您需要的呈现的HTML。我认为可以在多个视图中引用相同的模型。 – ob1quixote

+1

感谢您的帮助和解释!帮助了我很多! –

相关问题