Как я могу использовать шаблон расширения Django для переменных? - PullRequest
8 голосов
/ 26 августа 2009

В шаблоне документа django для упоминается следующее:

{% extends variable %}

Где я могу определить переменную? Это из views.py?

Ответы [ 2 ]

16 голосов
/ 26 августа 2009

{% extends %} фактически принимает строку - расположение шаблона для расширения.

Если вы хотите объявить эту переменную в Python, передайте ее загрузчику шаблонов, используя ваш словарь. Пример:

import django.http
from django.shortcuts import render_to_response
# ...
INDEX_EXTEND = "index.html"
# ...
def response(request) :
    return render_to_response("myview.html", {'extend': INDEX_EXTEND})

А потом в представлении:

{% extends extend %}

Обратите внимание, что 'extend' было передано в словаре, переданном шаблону. Конечно, вы можете определить переменную в любом месте вашего .py файла - или даже в самом объявлении словаря.

Помните, что {% extends %} также может быть вызван так:

{% extends "index.html" %}

Проверьте документы по Наследование шаблонов тоже.

6 голосов
/ 26 августа 2009

Да, это просто переменная контекста, как и любая другая.

Вам не нужно использовать переменную - {% extends "main.html" %} вполне приемлемо, фактически предпочтительнее, если вам не нужно делать что-то массово динамическое с наследованием шаблона.

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