Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Django и вызов нескольких шаблонов одновременно. [RSS Feed]

#1 Янв. 31, 2012 11:55:11

alexandre
От:
Зарегистрирован: 2010-11-16
Сообщения: 104
Репутация: +  0  -
Профиль   Отправить e-mail  

Django и вызов нескольких шаблонов одновременно.

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

#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}}
Можно ли как то это элегантней красивей что ли сделать на мой взгляд две функции лишние. Но делать правую и левую колонку одним шаблоном неудобно на мой взглад может быть и три и больше колонки. А если делать несколькими шаблонами то нужно и несколько видов. Инклудом если подключить то данные не передаются подключается пустой шаблон. Наследование одновремено не может только для одного места вроде. Ниче толком не нашел на эту тему хотя вроде азы :(



Отредактировано (Янв. 31, 2012 11:58:44)

Офлайн

#2 Янв. 31, 2012 13:18:15

mks
От:
Зарегистрирован: 2009-08-07
Сообщения: 80
Репутация: +  5  -
Профиль   Отправить e-mail  

Django и вызов нескольких шаблонов одновременно.

Наверно вот так будет удобнее:
Шаблон 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})



Офлайн

#3 Янв. 31, 2012 14:51:25

alexandre
От:
Зарегистрирован: 2010-11-16
Сообщения: 104
Репутация: +  0  -
Профиль   Отправить e-mail  

Django и вызов нескольких шаблонов одновременно.

...
{% include "left.html" with content=left_content %}
{% include "right.html" with content=right_content %}
...
Если использовать в jinja2 там есть подобный аналог? Имею в виду именно этот фрагмент.

with content=right_content
Мне jinja как шаблонизатор больше нравится.



Отредактировано (Янв. 31, 2012 14:52:56)

Офлайн

#4 Янв. 31, 2012 15:50:35

mks
От:
Зарегистрирован: 2009-08-07
Сообщения: 80
Репутация: +  5  -
Профиль   Отправить e-mail  

Django и вызов нескольких шаблонов одновременно.

Про jinja не подскажу, знаком с ним очень поверхностно.



Офлайн

#5 Янв. 31, 2012 21:43:35

alexandre
От:
Зарегистрирован: 2010-11-16
Сообщения: 104
Репутация: +  0  -
Профиль   Отправить e-mail  

Django и вызов нескольких шаблонов одновременно.

C jinja2 оказалось еще проще там по умолчанию with.



Офлайн

  • Начало
  • » Django
  • » Django и вызов нескольких шаблонов одновременно.[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version