Django url regex termination $ not matching route - PullRequest
1 голос
/ 21 июня 2020

У меня есть правило, что он не соответствует текущему маршруту, и я не знаю почему:

path(r'api/user/connections/worker/<str:identifier>/$', views.connections.Detail.as_view()),

Текущий URL: localhost:8000/api/user/connections/worker/test/, но он дает 404. Без знака доллара в конце он работает, но это превратило бы его в универсальное правило для других маршрутов, которые могут иметь один и тот же путь, и я пытаюсь этого избежать. Есть идеи?

Ответы [ 2 ]

1 голос
/ 21 июня 2020

A path(…) [Django -doc] не использует регулярное выражение. Он использует преобразователи патчей, как вы использовали в пути с &hlt;str:…>. Если вы используете $, это интерпретируется так, как будто $ необходимо в конце URL-адреса.

Таким образом, вы пишете это как:

path(<b>'api/user/connections/worker/<str:identifier>/'</b>, views.connections.Detail.as_view()),
1 голос
/ 21 июня 2020

new Django path () синтаксис не использует регулярное выражение в качестве аргумента

так же забавный факт, что $ закодирован URL-адресом, поэтому ваш URL-адрес будет доступен на

localhost: 8000 / api / user / connections / worker / test /% 24

...