Python Django маршрутизация routing
Есть urls:
urlpatterns = [
path('', index),
path('<slug:cat_id>/', sneaker_cat, name = 'sneaker_cat'),
path('<slug:url_sneaker_model>/', sneaker_menu, name = 'sneaker_menu'),]
На данный момент при переходе с sneaker_cat на sneaker_menu появляется исключение - вместо cat_id был получен url_sneaker_model. При этом в url браузера id заменяется на модель кроссовки. Проблему можно решить добавлением / перед slug:url_sneaker_model/, но в таком случае юрл будет например: http://127.0.0.1:1000/sneakers//Nike_Air_Monarch_IV/ (две //).
Вопрос, как сделать так что бы юрл был например таким: http://127.0.0.1:1000/sneakers/1/Nike_Air_Monarch_IV/. Тут 1 после sneakers - cat_id. Мне нужно что бы 1 оставался в юрл при переходе с sneaker_cat на sneaker_menu
Ответы (1 шт):
Автор решения: floydya
→ Ссылка
Вариант 1.
urlpatterns = [
path('', index),
path('<slug:cat_id>/', sneaker_cat, name='sneaker_cat'),
path('<slug:cat_id>/<slug:url_sneaker_model>/', sneaker_menu, name='sneaker_menu'),
]
Вариант 2.
from django.urls import include
urlpatterns = [
path('', index),
path('<slug:cat_id>/', include([
path('', sneaker_cat, name='sneaker_cat'),
path('<slug:url_sneaker_model>/', sneaker_menu, name='sneaker_menu'),
]),
]
Пример с оффициальной документации тут – ссылка.