如何使用 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 的模板扩展变量?的主要内容,如果未能解决你的问题,请参考以下文章