如何在 Django 模板中的“带有模板标签”中设置 Django 渲染块值?

Posted

技术标签:

【中文标题】如何在 Django 模板中的“带有模板标签”中设置 Django 渲染块值?【英文标题】:How can i set a Django render block value in the "with template tag", in Django Template? 【发布时间】: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 %

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

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

【问题讨论】:

【参考方案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 模板中寻找同样的东西。

以上是关于如何在 Django 模板中的“带有模板标签”中设置 Django 渲染块值?的主要内容,如果未能解决你的问题,请参考以下文章

Django-admin.py startproject --带有模板标签的模板

如何将javascript变量传递给django模板标签

包含带有模板标签的引导模式模板

如何从带有模板标签的查询集中访问模型属性?

如何在 Django 模板中设置背景图像?

如何在 django 模板中设置自定义 forloop 起点