You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django模板中根据子模板是否重写title块动态修改<title>标签

解决方案

你可以通过Django模板中块的is_overridden属性来判断title块是否被子模板重写,从而动态生成符合需求的标题:

调整基础模板(main.html)

<title>
{% block title %}{% endblock %}{% if block.title.is_overridden %} | Application{% else %}Application{% endif %}
</title>

子模板使用方式

  • 需要自定义标题时(如dashboard.html):
{% extends 'main.html' %}
{% block title %}Dashboard{% endblock %}

此时页面标题会渲染为 Dashboard | Application

  • 不需要自定义标题时:
{% extends 'main.html' %}

此时页面标题会直接渲染为 Application

可选的直观写法

如果你觉得上面的写法不够清晰,也可以拆分条件判断:

<title>
{% if block.title.is_overridden %}
  {% block title %}{% endblock %} | Application
{% else %}
  Application
{% endif %}
</title>

这种方式利用了Django模板系统中block对象的is_overridden属性,它会返回布尔值表示当前块是否被子模板重写,完美匹配你的需求。

内容的提问来源于stack exchange,提问作者Ali Zain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 10:25:10