📝 Django

Тег {% url %} в Django

P
Автор
Pyland
📅
Опубликовано
30.06.2026
⏱️
Время чтения
1 мин
👁️
Просмотров
71
🌱
Уровень
Начальный
🐦 💼 ✈️

{% url %} — тег шаблона для генерации URL по имени маршрута.

Базовое использование

# urls.py
urlpatterns = [
    path('tasks/', views.task_list, name='task-list'),
    path('tasks/<int:pk>/', views.task_detail, name='task-detail'),
    path('tasks/new/', views.task_create, name='task-create'),
]
<!-- Простой URL -->
<a href="{% url 'task-list' %}">Все задачи</a>
<!-- Результат: /tasks/ -->

<!-- URL с параметром -->
<a href="{% url 'task-detail' pk=task.pk %}">{{ task.title }}</a>
<!-- Результат: /tasks/42/ -->

<!-- Позиционный аргумент -->
<a href="{% url 'task-detail' task.pk %}">{{ task.title }}</a>

С namespace

<a href="{% url 'tasks:list' %}">Список</a>
<a href="{% url 'tasks:detail' pk=task.pk %}">Детали</a>

Сохранение в переменную

{% url 'task-detail' pk=task.pk as task_url %}
<a href="{{ task_url }}">Ссылка</a>

<!-- Удобно для проверки -->
{% url 'task-edit' pk=task.pk as edit_url %}
{% if edit_url %}
  <a href="{{ edit_url }}">Редактировать</a>
{% endif %}

Несколько параметров

# url: /courses/<course_slug>/lessons/<lesson_pk>/
path('<slug:course_slug>/lessons/<int:lesson_pk>/', views.lesson_detail, name='lesson-detail'),
{% url 'lesson-detail' course_slug=course.slug lesson_pk=lesson.pk %}

Почему {% url %} лучше хардкода

<!-- Плохо: хардкод пути -->
<a href="/tasks/{{ task.pk }}/">Задача</a>

<!-- Хорошо: при изменении URL в urls.py — шаблоны обновятся автоматически -->
<a href="{% url 'task-detail' pk=task.pk %}">Задача</a>

Ваша реакция на статью

💬 Комментарии (0)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

pytest-django: тестирование Django

Охватываемые темы: Установка, @pytest.mark.djangodb, Фикстуры, Тестирование views.

📅 30.06.2026 👁️ 138
📝

Django: Теги шаблонов

Теги шаблонов — это логика внутри HTML. В отличие от {{ переменная }}, которая только...

📅 30.06.2026 👁️ 91
📝

Django: Статические файлы

Статические файлы — CSS, JavaScript, изображения, шрифты. Django обрабатывает их особым образом: в разработке раздаёт...

📅 30.06.2026 👁️ 79

Понравилась статья?

Подпишитесь на наши обновления и получайте новые статьи первыми. Развивайтесь вместе с PyLand!