Найти - Пользователи
Полная версия: Простое меню с помощью Django
Начало » Django » Простое меню с помощью Django
1 2 3 4
Berg
Да … это я понял … :) Я имел ввиду сам контролер тега menu - его прийдется постоянно описывать в каждой вьюхе ?
Я так понял надо подробней копнуть в сторону написания своих тегов … Так как с ними еще не разбирался …
Evg
Контроллеры тегов кладутся в папку templatetags внутри вашего приложения см. доки. Джанга при встрече в шаблоне тега оттуда будет доставать их описание. в вьюхе ниче повторять не нада.
Berg
а приложение обязательно создавать ? без приложения это реализовать никак ?
Evg
Berg
а приложение обязательно создавать
когда вы создаете проект у вас есть как минимум одно главное приложение вот там и создавайте.
regall
Berg
а приложение обязательно создавать ? без приложения это реализовать никак ?
Приложения созданы для того, чтобы разделять логику работы вашего приложения на отдельные слабосвязные части. И это хороший подход. Если ваше приложение не требует такого разбиения, то делайте, как говорит Evg
Berg
Вобщем написал я “Тег включения” - в нем выводится меню - все ок …. , но вот столкнулся такой проблемой - как в функции-обработчике (там где я формирую это меню )этого тега получить например адрес текущего запроса ? чтоб определить какой из пунктов нужно сейчас подсветить ?
Evg
Сделайте чтобы тег брал контекст далее в нем все есть - request.uri
@register.inclusion_tag('tag.html', takes_context=True)
def tag(request):
return {}
regall
Berg
как в функции-обработчике (там где я формирую это меню )этого тега получить например адрес текущего запроса ?
request.META
request.META
Berg
regall
request.META
request.META
Evg
Сделайте чтобы тег брал контекст далее в нем все есть - request.uri
Код:

@register.inclusion_tag('tag.html', takes_context=True)
def tag(request):
return {}
в таком случае первый параметр согласно документации должен быть context, а не request ?

request - эта ж переменная создается только если код размещен в файле view.py, а у меня ж это “Тег включения” - и файл я назвал nav_menu.py в папке templatetags в папке приложения …

а на request ругается :
Exception Type: TemplateSyntaxError
Exception Value:

Caught an exception while rendering: global name ‘request’ is not define

если б было все так просто - я б не писал :)
Evg
да да я перепутал)
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