Django. Как получить URL по его имени?

Я хочу получить url по имени, указанному в urls.py.

Как {% url 'some_name' %} в шаблоне, но в Python.

Мой urls.py:

urlpatterns = [
    ...
    path('admin_section/transactions/', AdminTransactionsView.as_view(), name='admin_transactions'),
    ...
]

Я хочу что-то вроде:

Input: url('admin_transactions')
Output: '/admin_section/transactions/'

Я знаю о функции django.urls.reverse, но ее аргументом должен быть View, а не имя url

В Django есть утилита reverse() для этого.

Пример из документации:

учитывая следующий url:

from news import views

path('archive/', views.archive, name='news-archive')

Вы можете использовать следующее, чтобы изменить URL:

from django.urls import reverse

reverse('news-archive')

В документации более подробно описано использование функции, поэтому я рекомендую прочитать ее.

Вернуться на верх