如何在Django模板中声明变量

Y7d*_*7da 3 django

如何在Django 1.8模板中声明变量,例如:

{% my_var = "My String" %}
Run Code Online (Sandbox Code Playgroud)

所以我可以像这样访问它:

<h1>{% trans my_var %}</h1>
Run Code Online (Sandbox Code Playgroud)

编辑:

为了证明我的目的,这是我的代码:

{% my_var = "String Text" %}

{% block meta_title %}{% trans my_var %}{% endblock %}

{% block breadcrumb_menu %}
{{ block.super }}
<li>{% trans my_var %}</li>
{% endblock %}

{% block main %}

<h1>{% trans my_var %}</h1>
Run Code Online (Sandbox Code Playgroud)

小智 20

我喜欢使用的一种方法是:

{% firstof "variable contents" as variable %}
Run Code Online (Sandbox Code Playgroud)

然后,您可以在{{variable}}任何您想要的地方使用它,而无需嵌套with块,即使您定义了多个变量。


Sat*_*nix 10

尝试使用with标签.

{% with my_var="my string" %}
{% endwith %}
Run Code Online (Sandbox Code Playgroud)

另一个答案对于您正在尝试的内容更为正确,但对于更通用的情况,这更好.

那些仅从问题标题来到这里的人将需要这个.

  • 您还可以设置多个变量,如`{% with alpha=1 beta=2 %}(要渲染的东西){% endwith %}` 来源:django docs -&gt; https://docs.djangoproject.com/en/1.11 /ref/templates/builtins/#with (2认同)

Say*_*yse 6

您可以将转换分配给可以在整个过程中使用的变量.

 {% trans "my string" as my_var %}
 {{ my_var }}   {# You can use my_var throughout now #}
Run Code Online (Sandbox Code Playgroud)

trans标签的文档


您的代码段的完整示例

{% trans "String text" as my_var %}

{% block meta_title %}{{ my_var }}{% endblock %}

{% block breadcrumb_menu %}
{{ block.super }}
<li>{{ my_var }}</li>
{% endblock %}

{% block main %}

<h1>{{ my_var }}</h1>
Run Code Online (Sandbox Code Playgroud)