Как условно изменить тег <title> в шаблонах Django?

У меня есть базовый шаблон (main.html) со следующим кодом для тега:

main.html:

<title>{% block title %}{% endblock %} | Application</title>

В дочернем шаблоне (dashboard.html) я переопределяю блок заголовка следующим образом:

dashboard.html:

{% extends 'main.html' %}
{% block title %}Dashboard{% endblock %}

Если заголовок блока не переопределен в дочернем шаблоне, я хочу, чтобы заголовок был просто Application, без дополнительного | Application. Как я могу проверить, переопределен ли блок, и соответствующим образом изменить заголовок?

Когда я передаю блок заголовка из дочернего шаблона следующим образом:

{% extends 'main.html' %}
{% block title %}Dashboard{% endblock %}

Затем мне нужно, чтобы заголовок отображался как "Панель мониторинга | приложение".

Если я не передам блок заголовка:

{% extends 'main.html' %}

Тогда заголовок должен быть просто "Приложение".

Вы не можете сделать это в обычном Django, но вы можете обойти это, изменив свой основной блок на

<title>{% block title %}{% endblock %}Application</title>

и переопределяем его как

{% block title %}Dashboard | {% endblock %}

В качестве альтернативы вы можете использовать тег {% include %} вместо {% block %}:

title.html:

<title>{% if title %}{{ title }} | {% endif %}Application<title>

затем

dashboard.html::

{% include "title.html" with title="Dashboard" %}
Вернуться на верх