Как мне сделать шаблон внутри другого шаблона? - PullRequest
2 голосов
/ 25 августа 2010

Я новичок в Django и Python, и я застрял!Это сложно объяснить, но я попробую ... У меня есть index.html шаблон с тегом включения:

{% include 'menu.inc.html' %}

Меню динамическое (http://code.google.com/p/django-treemenus/). Меню-Приложение содержит представление, которое отображает menu.inc.html:

from django.http import HttpResponse
from django.template import Context, loader
from treemenus.models import Menu

def mymenu(request):
    mainmenu = Menu.objects.get(id = 1)
    template = loader.get_template('menu.inc.html')
    context = Context({
        'mainmenu':mainmenu,
    })

    return HttpResponse(template.render(context))

Так что, когда я получу доступ к index.html, сервер предоставит его мне, а django загрузит и будет обслуживать menu.inc.html! Но не содержимое! Мой вопросis:

  1. Как мне сделать обратную ссылку menu.inc.html на представление ?! или
  2. Как мне сообщить django, что шаблону требуется отрендеренный шаблон для определенного представления??!

Я не хочу ставить mainmenu = Menu.objects.get(id = 1) в моем индексе, потому что меню будет и на других страницах ... Я думал, iframes + rule в urls.py, но этоуродливый обходной путь ...

Имею ли я какой-либо смысл?!

1 Ответ

2 голосов
/ 25 августа 2010

На первый взгляд, это похоже на случай добавления тега включения .Возможно, вы захотите написать собственный тег, который отображает древовидное меню.Затем из основного представления вы можете передать необходимые переменные контекста для работы этого тега.

Из документации:

Еще один распространенный тип тега шаблона - это тип, отображающий некоторые данные.путем рендеринга другого шаблона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...