-
Добрый день, господа.
Есть
—- одно приложение
—- другое приложениеclass Category:
pass
class Blog:
category=ForeignKey(Category)
———————-class Category:
pass
class Forum:
category=ForeignKey(Category)
В шаблоне через template_tag из Category строится менюшка.
Соответственно вопрос,
можно как-нибудь в нем выяснить при обработке какой модели вызывается этот template_tag в шаблоне и в зависимости от этого строить меню по нужной категории?
Чтобы иметь один шаблон для меню. -
Почему бы просто в тег явно не передать признак, по которому ему надо строиться?
Вообще, очень трудно что-то предполагать, потому что по описанию двух моделей вообще непонятно, о каком таком теге идет речь, как он вызывается, и что значит "вызывается при обработке модели"... Поподробнее бы.
-
Есть приложение Блоги к примеру.
Каждый блог имеет внешний ключ на категорию.
Есть другое приложение Форум.
У топиков тоже есть внешний ключ на категорию.
Обе категории в приложениях фактически идентичны, не связаны между собой и унаследованы от одного общего класса.
При рендеринге страницы форума - в шаблоне вставляется тег category_forum.
В нем происходит
from apps.forum.models import Category
и в теге используется Category.objects.filter().filter() и тп.
где из этих категорий строится cssное меню.
В шаблоне форума соответственно include forum/header.html в котором прописана загрузка этого тега.
Для блога тоже самое, тег такой же, но в нем
from apps.blog.models import Category
И тп.
В шаблоне include blog/header.html
———
Собственно вопрос(а я видел недавно Иван как ты в django-dev сам отстаивал позицию, зачем плодить лишний код, и закоммитил патч кажется к формам)
как оптимально сделать чтобы во всех шаблонах было
include header.html
В header.html - load category
И в этом теге можно ли как-то реализовать, или как это вообще можно реализовать грамотно
<если вызвано из приложения блог>
from apps.blog.models import Category
<если вызвано из приложения forum>
from apps.blog.models import Category
Далее код строит меню из нужной категории. -
в последнем абзаце имеется в виду,
можно ли в template_tag определить через view какого приложения он вызван,
и соответственно произвести импорт Category из этого же приложения.
