Маршрут Django выдает 404

У меня есть route, зарегистрированный в 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))
]

что означает, что я должен быть в состоянии попасть в viewset через следующий вызов

<><><>

но я получаю 404

Может ли кто-нибудь сказать мне, что я делаю неправильно?

Загвоздка в том, что хотя ваш url visual/random_string/ совпадает с regex visual/(?P<random_url>[\w]+)/$, маршрутизатор автоматически добавляет /$ к указанному вами regex.

Следовательно, внутренне ваш regex преобразуется в visual/(?P<random_url>[\w]+)/$/$, который не совпадает с visual/random_string/.

Итак, удалите /$ из вашего regex и просто сохраните следующий код.

router.register(r"visual/(?P<random_url>[\w]+)", views.LinkTest, basename="test")
Вернуться на верх