Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 将blocktrans输出分配给变量_Django_Django Templates - Fatal编程技术网

Django 将blocktrans输出分配给变量

Django 将blocktrans输出分配给变量,django,django-templates,Django,Django Templates,我想将blocktrans块的输出分配给模板变量 您可以使用trans标记这样做: {% trans "Some text to translate" as foo %} 但是,对于blocktrans标记,您不能执行相同的操作。我在文档中看不到您可以这样做。这在blocktrans标记中是不可能的 但是,您可以使用它来捕获blocktrans的输出 {% captureas trans_value %} {% blocktrans %} This has some s

我想将blocktrans块的输出分配给模板变量

您可以使用trans标记这样做:

{% trans "Some text to translate" as foo %}

但是,对于blocktrans标记,您不能执行相同的操作。我在文档中看不到您可以这样做。

这在blocktrans标记中是不可能的

但是,您可以使用它来捕获blocktrans的输出

{% captureas trans_value %}
    {% blocktrans %}
        This has some stuff in it which will be translated {{ foo }}.
    {% endblocktrans %}
{% endcaptureas %}

{{ trans_value }}

Django 1.9在
blocktrans
中添加了
asvar
组件:

{%blocktrans asvar the_title%}标题为{{title}。{%endblocktrans%}
{{{u title}}

不幸的是,在添加该链接之前,您似乎需要其他方法来完成此操作。

谢谢您的建议,但我不知道将您提供的链接代码放在哪里。@olivier pons您需要将其定义为[模板标签)然后将其加载到模板中接受的答案仅适用于django v 1.9+。此答案适用于<1.9。您可能会说我的产品应该升级,您是对的,但升级不能总是安排好。(此外,captureas似乎比blocktrans更通用)请注意,编写的这个示例将包含空格;如果您只想存储
blocktrans
的输出,请执行以下操作:例如
{%captureas trans\u value%}{%blocktrans%}Foo{%endblocktrans%}{%endcaptureas%}
(即,在一行上)只是善意地问:您可以更新更好的答案,使用Django 1.9完美地工作。
{% blocktrans asvar the_title %}The title is {{ title }}.{% endblocktrans %}
<title>{{ the_title }}</title>
<meta name="description" content="{{ the_title }}">