Форум сайта python.su
Всем привет. Проблема появилась снова :)
Итак, что имею. Есть шаблон main.html. Идея шаблона в том, что html-страница делится на 2 части. Левая часть страницы не изменяется. Правая страница изменятся. В результате код такой
<div class="left">
{% block left %}
{% endblock %}
</div>
<div class="right">
{% block right %}
{% endblock %}
</div>
{% extends "main.html" %}
{% block left %}
LEFT BLOCK
{% endblock %}
Офлайн
Если правый не будет меняться - засуньте его в базовый. Зачем его держать отдельно?
Офлайн
ну наверное придется так. я честно говоря надеялся есть более элегантный способ в виде ООП :(
чтобы можно было страницы разделять на части
Отредактировано (Янв. 12, 2010 20:01:59)
Офлайн
http://habrahabr.ru/blogs/django/23132/ - нашел занятную статью. То что надо! :)
Офлайн
Зачем разделять на части то, что не требует разделения?
Flat is better than nested.
Офлайн
Может и не требует разделения.
Я никак не могу разобраться с проблемой, когда вычисляется несколько видов (views.py)
Как бы объяснить. Вот если логически рассуждать, то есть url (^page/$)
Но тут же сразу появляется проблема. в левой части по моей задумке есть функция отображения def left_view(request), а в правой своя функция def right_view(request). Получается нужно сразу две функции прикрутить к одному url…
У меня никак не сложится логика работы всего сайта. Ведь левая часть появляется везде, а правая меняется постоянно. Как идея - это сделать как бы внутреннюю функцию def left_view() , а потом ее добавлять во все функции видов, где она требуется. Так что ли получается?
Или есть более красивый способ?
Отредактировано (Янв. 13, 2010 07:52:03)
Офлайн
Для каждой разной правой - свой view (я так понимаю, там основной контент). Для левой (это sidebar, как я понимаю) - оформляешь темплейттаг.
Офлайн
Неа. Правая часть - допустим список всех сообщений. Левая часть список сообщений созданных конкретным пользователем.
Т.е. получается ЛОГИЧНО делать 2 view для одного шаблона… Или опять что-то я не допонял? :(
Офлайн
Нет, не так.
Один из списков будет показываться на многих страницах - это дополнительная функция, и её надо оформлять как темплейттаг.
Другой же список будет заменятся чем-то другим - это будет основная функциональная часть страницы.
Например :
|Список новостей | список комментариев конкретного пользователя | view будет news
|Список последних комментариев | список комментариев конкретного пользователя | view будет last_comments
|Статья | список комментариев конкретного пользователя | view будет show_article
Список комментариев конкретного пользователя оформляем как темплейттаг и размещаем в шаблоне.
Офлайн
Нашел только вот это http://docs.djangoproject.com/en/dev/ref/templates/builtins/#templatetag
А как функцию оформить не могу найти. вы не можете подсказать пример,ссылку где посмотреть?
Update
Вроде нашел http://www.djangosnippets.org/snippets/1568/ Это?
Отредактировано (Янв. 14, 2010 08:38:52)
Офлайн