在Django模板中,可以使用with
标记向上下文引入新的命名变量:
{% with total=business.employees.count %}
{{ total }} employee{{ total|pluralize }}
{% endwith %}
我发现自己经常使用它来重命名变量,以便我可以包含可重复使用的模板:
{% with user_list=request.user.friends %}
{% include '_user_list.html' %}
{% endwith %}
有没有办法在不使用with
标记的情况下在上下文中引入新变量?我想象的是像set
这样的标记,您可以像{% set user_list=request.user.friends %}
一样调用它,然后不需要使用{% endset %}
标记将其关闭。这类似于函数中的{% trans "This is the title" as the_title %}
。
如果没有办法做到这一点,为什么这不是一个好/ pythonic / django做事的方式有什么原因?
答案 0 :(得分:2)
如果您查看include
template tag,您会看到您可以在变量本身内为模板分配和传递变量:
您可以使用关键字参数将其他上下文传递给模板:
{% include "name_snippet.html" with person="Jane" greeting="Hello" %}