1. multilinux

    03.10.2008 09:19

    Добрый день, господа.
    Есть
    —- одно приложение
    class Category:
    pass
    class Blog:
    category=ForeignKey(Category)
    —- другое приложение
    class Category:
    pass
    class Forum:
    category=ForeignKey(Category)
    ———————-
    В шаблоне через template_tag из Category строится менюшка.
    Соответственно вопрос,
    можно как-нибудь в нем выяснить при обработке какой модели вызывается этот template_tag в шаблоне и в зависимости от этого строить меню по нужной категории?
    Чтобы иметь один шаблон для меню.
  2. Иван Сагалаев

    03.10.2008 11:04

    Почему бы просто в тег явно не передать признак, по которому ему надо строиться?

    Вообще, очень трудно что-то предполагать, потому что по описанию двух моделей вообще непонятно, о каком таком теге идет речь, как он вызывается, и что значит "вызывается при обработке модели"... Поподробнее бы.

  3. multilinux

    03.10.2008 19:11

    Есть приложение Блоги к примеру.
    Каждый блог имеет внешний ключ на категорию.
    Есть другое приложение Форум.
    У топиков тоже есть внешний ключ на категорию.
    Обе категории в приложениях фактически идентичны, не связаны между собой и унаследованы от одного общего класса.
    При рендеринге страницы форума - в шаблоне вставляется тег 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
    Далее код строит меню из нужной категории.
  4. multilinux

    03.10.2008 19:15

    в последнем абзаце имеется в виду,
    можно ли в template_tag определить через view какого приложения он вызван,
    и соответственно произвести импорт Category из этого же приложения.

bbcode