Всем привет, я начал осваивать джанго, поэтому следующие посты будут все больше и больше охватывать Джанго.
Прежде всего, хочу посоветовать интересный блог www.mrkaban.ru, где вы найдете много интересного материала для работы с Django
Итак.
В шаблоне Django мы можем использовать теги шаблонов «URL», чтобы получить путь вида, как этот:
{% url 'blog:top' %}
На выходе здесь будет /blog/
Как мы можем сравнить этот возвращаемый путь? Вы можете использовать ‘as’ синтаксис для шаблона URL тега, чтобы сохранить возвращаемое значение переменной, и сравнить его с некоторой строкой или другой переменной:
{% url 'blog:top' as top_path %}
Сравним со строкой
{% if top_path == '/blog/'%}Путь имеет значение '/blog/'{% endif %}
С другими вариантами
Но в целом, этот способ не такой разумный. Поскольку шаблоны не должны иметь много логик.
Рассмотрим некоторые анти-шаблоны, если вы не хотите показывать определенный текст на определенной странице:
{# In base.html #}
<html>
<body>
<a href="{% url 'top' as top_path %}
{% if top_path != request.path %}
{{ top_path }}
{% endblock %}">Brand Logo</a>
{% block content %}{% endblock %}
</body>
</html>
{# In top.html #}
{% extends 'base.html' %}
{% block content %}
Привет, это главная страница
{% endblock %}
Это «if» синтаксис в base.html означает «Не создавать главный путь, когда пользователь находится на главной странице». Он может работать с ошибками. Но это может быть реализовано более простым способом, используя синтаксис блока:
{# In base.html #}
<html>
<body>
<a href="{% block bland_path%}{{ top_path }}{% endblock %}">Brand Logo</a>
{% block content %}{% endblock %}
</body>
{# In top.html #}
{% extends 'base.html' %}
{% block top_path %}{% endblock %}{# Перезаписать это вместо текста #}
{% block content %}
Привет! Это главная страница
{% endblock %}
При этом дочерний шаблон знает о поведении для скрытия ссылки на главной странице. В предыдущем примере, шаблон должен получить доступ к ‘request’, так что вам нужно использовать ‘contextprocessors.request’. И добавлять страницы, не указывая ссылку, которую, в будущем, вы можете поменять.
Плагин рейтинга создан автором этого блога. Буду очень признателен, если вы сможете его поддержать (ссылка)