2014-05-14 69 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

感謝您的幫助和解釋!幫助了我很多! –

相關問題