Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 12, 2010 19:14:10

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Несколько блоков на странице

Всем привет. Проблема появилась снова :)
Итак, что имею. Есть шаблон main.html. Идея шаблона в том, что html-страница делится на 2 части. Левая часть страницы не изменяется. Правая страница изменятся. В результате код такой

<div class="left">
{% block left %}
{% endblock %}
</div>
<div class="right">
{% block right %}
{% endblock %}
</div>
Ну и соответсвенно делаю два шаблона для левой и правой части.
Left.html
{% extends "main.html" %}
{% block left %}
LEFT BLOCK
{% endblock %}
Ну и для правой соответсвенно аналогично.
И тут появляется проблема… Я два шаблона-то подтянуть не могу. А в один пихать - мне кажется неправильно.
Смотрите. Правая часть будет постоянно меняться. В результате у меня будет около 20 шаблонов правой части. Неужто я левый блок должен во все шаблоны копировать? А если я левый блок захочу изменить? Потом все заново перекопировать?



Офлайн

#2 Янв. 12, 2010 19:51:56

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Несколько блоков на странице

Если правый не будет меняться - засуньте его в базовый. Зачем его держать отдельно?

Офлайн

#3 Янв. 12, 2010 20:01:05

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Несколько блоков на странице

ну наверное придется так. я честно говоря надеялся есть более элегантный способ в виде ООП :(
чтобы можно было страницы разделять на части



Отредактировано (Янв. 12, 2010 20:01:59)

Офлайн

#4 Янв. 12, 2010 20:12:40

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Несколько блоков на странице

http://habrahabr.ru/blogs/django/23132/ - нашел занятную статью. То что надо! :)



Офлайн

#5 Янв. 12, 2010 20:39:56

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Несколько блоков на странице

Зачем разделять на части то, что не требует разделения?
Flat is better than nested.

Офлайн

#6 Янв. 13, 2010 07:51:16

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Несколько блоков на странице

Может и не требует разделения.
Я никак не могу разобраться с проблемой, когда вычисляется несколько видов (views.py)
Как бы объяснить. Вот если логически рассуждать, то есть url (^page/$)
Но тут же сразу появляется проблема. в левой части по моей задумке есть функция отображения def left_view(request), а в правой своя функция def right_view(request). Получается нужно сразу две функции прикрутить к одному url…
У меня никак не сложится логика работы всего сайта. Ведь левая часть появляется везде, а правая меняется постоянно. Как идея - это сделать как бы внутреннюю функцию def left_view() , а потом ее добавлять во все функции видов, где она требуется. Так что ли получается?
Или есть более красивый способ?



Отредактировано (Янв. 13, 2010 07:52:03)

Офлайн

#7 Янв. 13, 2010 11:13:19

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Несколько блоков на странице

Для каждой разной правой - свой view (я так понимаю, там основной контент). Для левой (это sidebar, как я понимаю) - оформляешь темплейттаг.

Офлайн

#8 Янв. 13, 2010 14:20:34

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Несколько блоков на странице

Неа. Правая часть - допустим список всех сообщений. Левая часть список сообщений созданных конкретным пользователем.
Т.е. получается ЛОГИЧНО делать 2 view для одного шаблона… Или опять что-то я не допонял? :(



Офлайн

#9 Янв. 13, 2010 16:11:42

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Несколько блоков на странице

Нет, не так.
Один из списков будет показываться на многих страницах - это дополнительная функция, и её надо оформлять как темплейттаг.
Другой же список будет заменятся чем-то другим - это будет основная функциональная часть страницы.

Например :

|Список новостей | список комментариев конкретного пользователя | view будет news
|Список последних комментариев | список комментариев конкретного пользователя | view будет last_comments
|Статья | список комментариев конкретного пользователя | view будет show_article

Список комментариев конкретного пользователя оформляем как темплейттаг и размещаем в шаблоне.

Офлайн

#10 Янв. 14, 2010 08:34:17

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

Несколько блоков на странице

Нашел только вот это http://docs.djangoproject.com/en/dev/ref/templates/builtins/#templatetag
А как функцию оформить не могу найти. вы не можете подсказать пример,ссылку где посмотреть?

Update
Вроде нашел http://www.djangosnippets.org/snippets/1568/ Это?



Отредактировано (Янв. 14, 2010 08:38:52)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version