Именованные маршруты в Django
Маршрутам можно давать имена. По имени потом удобно получать URL - не придется писать адрес строкой вручную в каждом месте кода.
Имя задают параметром name
у path:
urlpatterns = [
path('posts/', views.posts, name='posts'),
path(
'post/<int:id>/',
views.post,
name='post'
),
]
Получить адрес по имени можно
функцией reverse:
from django.urls import reverse
reverse('posts') # /posts/
reverse('post', args=[5]) # /post/5/
Если параметры именованные, удобнее
передавать kwargs:
reverse('post', kwargs={'id': 5}) # /post/5/
Дайте имена следующим маршрутам:
urlpatterns = [
path('user/profile/', views.profile),
path('user/<int:id>/', views.user),
]
Через reverse получите URL
для маршрута с именем 'post'
и параметром id равным
10. Выведите этот URL
в представлении.