Search

Romua1d.ru
Django

Url адреса в шаблоне Django

Всем привет, я начал осваивать джанго, поэтому следующие посты будут все больше и больше охватывать Джанго.

Прежде всего, хочу посоветовать интересный блог 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’. И добавлять страницы, не указывая ссылку, которую, в будущем, вы можете поменять.

Плагин рейтинга создан автором этого блога. Буду очень признателен, если вы сможете его поддержать (ссылка)

p.s. Если статья была полезной и вас переполняет чувство благодарности, можете поддержать меня долларом на патреоне

Romuald Shmidtelson

Web Developer. I have expirience in FrontEnd, Backend, Devops. PHP, Python, Javascript (Vue.js, React.js)

Поделиться
Опубликовано
Romuald Shmidtelson

Недавние Посты

Как получить первый заказ на фрилансе

Получение первого заказа на фрилансе может быть вызовом, особенно для новичков, которые еще не имеют…

1 год назад

Топ 7 css фреймворков 2021 года

Разработка сайтов и веб-приложений стала в наше время неизбежной потребностью. Тем не менее, существует несколько способов…

2 года назад

Что такое семантическое ядро и как его использовать для продвижения сайта?

Компании и специалисты по маркетингу тратят много времени и денег на изучение языка поисковых систем,…

2 года назад

Что такое адаптивные изображения? Как правильно использовать srcset.

Адаптивные изображения - это набор методов, используемых для загрузки правильного изображения в зависимости от разрешения…

3 года назад

Что такое Политика конфиденциальности для сайта и для чего она нужна?

Политика конфиденциальности - это документ, в котором подробно описывается, как компания или организация обрабатывает любую…

3 года назад

Кто такой вебмастер?

В современном мире много специалистов занятых поддержанием работы сайтов, и довольно часто многих из них…

3 года назад