如何使用 Django 的模板扩展变量?
Posted
技术标签:
【中文标题】如何使用 Django 的模板扩展变量?【英文标题】:How do I use Django's template extends variable? 【发布时间】:2010-11-22 19:14:23 【问题描述】:django template doc 提到以下扩展模板:
% extends variable %
我在哪里定义变量?是来自views.py吗?
【问题讨论】:
【参考方案1】:% 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 上的文档。
【讨论】:
【参考方案2】:是的,它只是一个和其他变量一样的上下文变量。
您不需要使用变量 - % extends "main.html" %
完全可以接受,实际上更可取,除非您需要使用模板继承进行大规模动态操作。
【讨论】:
以上是关于如何使用 Django 的模板扩展变量?的主要内容,如果未能解决你的问题,请参考以下文章
Django 如何将自定义变量传递给上下文以在自定义管理模板中使用?