Найти - Пользователи
Полная версия: Django и вызов нескольких шаблонов одновременно.
Начало » Django » Django и вызов нескольких шаблонов одновременно.
1
alexandre
В джанго пока новичок. Есть например двух колоночный сайт. За от рисовку данных для каждой колонки отвечает свой шаблон. Сейчас это реализовано следующим образом.

#urls.py
urlpatterns = patterns('',
('^hello/$', index),
)

#views.py
def index():
return show_site( left(), right() )

def show_site(left, right):
return render_to_response('base.html', {'right':right, 'left':left})

def right(request):
a = "aaa"
return render_to_response('right.html', {'right':a})

def right(request):
b = "bbb"
return render_to_response('left.html', {'right':b})

#base.tpl
{{left}}
{{right}}
Можно ли как то это элегантней красивей что ли сделать на мой взгляд две функции лишние. Но делать правую и левую колонку одним шаблоном неудобно на мой взглад может быть и три и больше колонки. А если делать несколькими шаблонами то нужно и несколько видов. Инклудом если подключить то данные не передаются подключается пустой шаблон. Наследование одновремено не может только для одного места вроде. Ниче толком не нашел на эту тему хотя вроде азы :(
mks
Наверно вот так будет удобнее:
Шаблон main_layout.html:
...
{% include "left.html" with content=left_content %}
{% include "right.html" with content=right_content %}
...
В коде:
def index(request):
left_content = ...
right_content = ...
return render_to_response('main_layout.html', {'right_content':right_content, 'left_content': left_content})
alexandre
...
{% include "left.html" with content=left_content %}
{% include "right.html" with content=right_content %}
...
Если использовать в jinja2 там есть подобный аналог? Имею в виду именно этот фрагмент.

with content=right_content
Мне jinja как шаблонизатор больше нравится.
mks
Про jinja не подскажу, знаком с ним очень поверхностно.
alexandre
C jinja2 оказалось еще проще там по умолчанию with.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB