#django #django-urls
#django #django-urls
Вопрос:
Я пытаюсь передать первую часть URL-адреса django в представление, чтобы я мог фильтровать свои результаты по термину в URL-адресе.
Глядя на документацию, это кажется довольно простым.
Однако у меня есть следующее urls.py
url('<colcat>/collection/(?P<name>[w-] )$', views.collection_detail, name='collection_detail'),
url('<colcat>/', views.collection_view, name='collection_view'),
В этом случае я хочу иметь возможность перейти к /living
и иметь living
возможность быть переданным моему представлению, чтобы я мог использовать его для фильтрации по.
Однако при попытке этого, независимо от того, какой URL-адрес я ввел, он не сопоставляется, и я получаю сообщение об ошибке, в котором говорится, что введенный мной адрес не может быть сопоставлен ни с одним URL-адресом.
Чего мне не хватает?
Комментарии:
1. возможно, вам не хватает косой черты в конце. т. е. перейдите к
/living/
Ответ №1:
<colcat>
недопустимое регулярное выражение. Вам нужно использовать тот же формат, что и для name
.
url('(?P<colcat>[w-] )/collection/(?P<name>[w-] )$', views.collection_detail, name='collection_detail'),
url('(?P<colcat>[w-] )/$', views.collection_view, name='collection_view'),
В качестве альтернативы используйте новую path
форму, которая будет намного проще:
path('<str:colcat>/collection/<str:name>', views.collection_detail, name='collection_detail'),
path('<str:colcat>/', views.collection_view, name='collection_view'),