#django #django-rest-framework #openapi #drf-yasg
Вопрос:
У меня есть маршрут, зарегистрированный в urls.py файл моего основного приложения django в виде:
router.register(r"visual/(?P<random_url>[w] )/$", views.LinkTest, basename="test")
и шаблоны URL-адресов, определенные как:
urlpatterns = [
# Admin
path("admin/", admin.site.urls),
# Model API Routes
path("rest/api/latest/", include(router.urls))
]
это означает, что я должен быть в состоянии попасть в набор представлений с помощью следующего вызова
http://localhost:8000/rest/api/latest/visual/random_string/
но я получаю 404
Кто-нибудь может сказать мне, что я делаю не так?
Ответ №1:
Загвоздка здесь в том , что, хотя ваш URL visual/random_string/
-адрес совпадает с регулярным visual/(?P<random_url>[w] )/$
выражением, маршрутизатор /$
автоматически добавляет его в указанное вами регулярное выражение.
Следовательно, внутренне ваше регулярное выражение преобразуется в то, с visual/(?P<random_url>[w] )/$/$
которым оно не совпадает visual/random_string/
.
Итак, удалите /$
из своего регулярного выражения и просто сохраните код фоллинга.
router.register(r"visual/(?P<random_url>[w] )", views.LinkTest, basename="test")
Комментарии:
1. Да, ты был прав, это сработало для меня, Спасибо, Мохит