【问题标题】:How can i set a Django render block value in the "with template tag", in Django Template?如何在 Django 模板中的“带有模板标签”中设置 Django 渲染块值?
【发布时间】:2019-12-04 15:52:19
【问题描述】:

我根据 Django 应用程序中的不同视图显示动态标题,我想在我的 base.html 文件中的 3 个元标记上设置相同的标题, 它在所有其他模板中得到扩展。

当我在标题变量上设置一个字符串时,这可以正常工作:

{% with title='TEST'%}
    <title>{% block page-title %}{% block title %}{% endblock %} | {{ agency.name }}{% endblock %}</title>
    <meta property="og:title" content="{{title}}" />
    <meta name="twitter:title" content="{{title}}" />
{% endwith %}

我想将这个动态标题设置为:

{% with title="{% block page-title %}{% block title %}{% endblock %} | {{agency.name }}{% endblock %}"%}
    <title>{{title}}</title>
    <meta property="og:title" content="{{title}}" />
    <meta name="twitter:title" content="{{title}}" />
{% endwith %}

但是当我这样做时,我没有得到标题变量中的值:

如何将其设置为带有模板标签的变量,然后在其他标签中重新使用该变量? 或者还有其他方法吗?

【问题讨论】:

    标签: django django-templates


    【解决方案1】:

    你可以试试block assignment功能:

    {% with %}
        {% set title %}{% block page-title %}{% block title %}{% endblock %} | {{ agency.name }}{% endblock %}{% endset %}
        <title>{{ title }}</title>
        <meta property="og:title" content="{{title}}" />
        <meta name="twitter:title" content="{{title}}" />
    {% endwith %}
    

    【讨论】:

    • 我有 django 模板。它给我的错误是:“with”期望至少一个变量赋值。
    • 我想你可以安全地删除'with'。
    • 错误:“设置”。您是否忘记注册或加载此标签?
    • 我猜,这是用于烧瓶,而不是用于 django 模板。我有 Django 模板。
    • 好的,没问题。我在 Django 模板中寻找同样的东西。
    猜你喜欢
    • 2018-10-21
    • 2011-08-02
    • 2013-06-08
    • 2015-09-21
    • 2022-07-22
    • 1970-01-01
    • 2011-02-09
    • 2012-12-02
    • 2018-11-25
    相关资源
    最近更新 更多