2014-05-14 3 views
0

У меня есть HTML-файл, содержащий следующую строку:данных не отображается, когда шаблон включается в другой шаблон

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

И у меня есть этот другой шаблон:

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

Когда я открываю URL, который загружает events.html он отлично показывает данные:

Evento 1 
Pentaho Workshop 

Но когда я открываю главный URL-адрес, который загружается core.html, ничего мне не показывает. Если я напишу «blabla» из блока for, это будет показано !!!

События -> 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_index вид, который загружает events объект в контекст шаблона через events = Events.objects.all(). В этом контексте вид core_index не включает events, поэтому для цикла нечего обрабатывать. Если вы добавите импорт для модели Events, а events = Events.objects.all() - core_index, все будет работать больше, как вы ожидаете.

+0

Это сработало! Есть ли все-таки, чтобы все логики и процессы в приложении могли повторно использовать его? То, как я ожидал, что это сработает, - это идея, которую я хочу выразить ... есть ли способ сделать это? –

+1

Я думаю, что я понимаю, чего вы хотите, и вы можете включить просмотр в другое представление, для некоторого значения include, _q.v._ [«Могу ли я вызвать представление из другого представления?»] (Http: // stackoverflow .com/вопросы/4808329/может-I-Call-A-View-из-в-другом-зрения). Однако я не думаю, что буду. Если вам нужно ссылаться на модель событий в обоих представлениях, пусть будет так. Представления должны быть композициями моделей и необходимой логикой для возврата полученного HTML-кода. Я думаю, что можно ссылаться на одну и ту же модель в нескольких взглядах. – ob1quixote

+1

Спасибо за помощь и объяснение! Помог мне много! –

Смежные вопросы