答案 0 :(得分:16)
{% 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" %}
查看Template inheritance上的文档。
答案 1 :(得分:6)
是的,它只是一个像其他任何一样的上下文变量。
您不需要使用变量 - {% extends "main.html" %}
是完全可以接受的,事实上除非您需要使用模板继承进行大规模动态操作,否则更可取。