Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Django переменные базового шаблона 
V
    Опции темы
Absinthe
Дата 24.8.2011, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: нет
Всего: 11



Стыдно за подобный вопрос, но:

У меня есть базовый шаблон.
Его наследуют другие шаблоны.

Как в базовом шаблоне определить переменные?
Хочу в нем писать имя пользователя в уголке. Ну и прочие другие переменные.

Как обычно это делается?
Я допустим уже придумал хак определения этого через кастом-тег, но не хочу гoвнокодить.

Вопрос #2. В принципе наверное он даст ответ на вопрос 1:
Как вставить блок в шаблон с контекстом блока?

Добавлено через 10 минут и 42 секунды
https://github.com/marcinn/django-widgets
нашел такую штуку.
Как я понимаю, классического решения #2 нет. А #1?
PM MAIL   Вверх
Daevaorn
Дата 24.8.2011, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 3
Всего: 70



Цитата(Absinthe @  24.8.2011,  17:48 Найти цитируемый пост)
Как обычно это делается?

https://docs.djangoproject.com/en/dev/ref/t...-requestcontext

Цитата(Absinthe @  24.8.2011,  17:48 Найти цитируемый пост)
Как вставить блок в шаблон с контекстом блока?

https://docs.djangoproject.com/en/dev/howto...#inclusion-tags
PM MAIL WWW   Вверх
Absinthe
Дата 24.8.2011, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: нет
Всего: 11



Спасибо за направления smile
Т.е. для вставки переменных я использую #1, а для блоков html - #2, верно?

 Значит всегда во всех шаблонах я должен добавлять context_instance=RequestContext(request) в render_to_response?
Либо использовать render, передавая ему request первым параметром?

По сути я делаю так:
Код

TEMPLATE_CONTEXT_PROCESSORS += (
    "app.context.foo",
)
 И все ключи возвращаемого dict функции app.context.foo попадают в шаблоны, верно? (В данном случае это не надо, т.к. user там и так есть)

У меня после этих махинаций перестал работать django debug toolbar.

Теперь по поводу виджетов:
Код

from django.template.loader_tags import register

@register.inclusion_tag('block_auth.html', takes_context=True)
def block_auth(context):
    return {'user' : context['user']}

Как я понимаю, это надо записать в любой_app/templatetags/имя.py и потом {% load имя %} {% block_auth %} в любом шаблоне?
И это будет наиболее верное решение для авторизационного блока?
PM MAIL   Вверх
Daevaorn
Дата 24.8.2011, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 3
Всего: 70



Цитата(Absinthe @  24.8.2011,  20:12 Найти цитируемый пост)
Значит всегда во всех шаблонах я должен добавлять context_instance=RequestContext(request) в render_to_response?
Либо использовать render, передавая ему request первым параметром?

Да.
Цитата(Absinthe @  24.8.2011,  20:12 Найти цитируемый пост)
Как я понимаю, это надо записать в любой_app/templatetags/имя.py и потом {% load имя %} {% block_auth %} в любом шаблоне?
И это будет наиболее верное решение для авторизационного блока? 

Да.
PM MAIL WWW   Вверх
cutwater
Дата 25.8.2011, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: нет
Всего: 10



Absinthe, чтобы не писать каждый раз откройте для себя полезные сниппеты, например render_to

http://solovyov.net/blog/2008/03/22/render-to-improved/

В варианте от piranha


--------------------
user posted image
PM MAIL   Вверх
Absinthe
Дата 25.8.2011, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 4.5.2011

Репутация: нет
Всего: 11



cutwater, в 1.3 появился render() шорткат, не менее удобный.
PM MAIL   Вверх
gomer999999999
Дата 3.2.2013, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 3.2.2013

Репутация: -1
Всего: -1



Добрый день.
Предлагаем к рассмотрению и тестированию наш проект - Маркетер Плагин.
Продвигаем его успешно во всем мире. Но только 27 января 2013 предоставили в Рунете к тестированию русифицированный плагин с русифицированным интерфейсом. Вся подробная информация наhttp://www.marketerplugin.ru/ 
Предлагаем протестировать наш плагин на только что русифицированном интерфейсеhttp://www.marketerplugin.ru/test_plagina.
В двух словах: плагин предназначен для создания сайтов-визиток и страниц продаж.
Ждем ваших комментариев, отзывов и критики.
Так же будем рады видеть вас на наших страницах в соц сетях
http://www.facebook.com/pages/Marketer-plugin/5288148..
http://vk.com/club46912629
Успехов и новых впечатлений.
С уважением, Богдан
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Веб-разработка и фреймворки | Следующая тема »


 




[ Время генерации скрипта: 0.0512 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.