Как условно изменить тег <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" %}