путь ('<username>'), приводящий к тому, что все URL отображаются на неверный вид - PullRequest
0 голосов
/ 12 мая 2019

У меня есть приложение Django под названием chat, а корень urls.py выглядит следующим образом

path('messages/', include('chat.urls')),

Однако приведенный ниже URL-адрес в приложении чата urls.py вызывает проблемы

re_path(r"^(?P<username>[\w.@+-]+)", login_required(chat_views.ThreadView.as_view()), name='thread'),

То, что происходит, - то, что вместо броска 404 не существует ошибки, когда я иду к выдуманному URL, такому как

localhost/messages/blahblah/02

Вместо этого он бросает

NOT NULL constraint failed: chat_thread.second_id

, потому чтоон предполагает, что blahblah/02 является именем пользователя и сопоставляет его с ThreadView, который не может получить объект thread от 2 пользователей.

Таким образом, по сути, любой другой шаблон URL, который я пытаюсь создать вchat приложение не маршрутизируется должным образом.(Например, я попытался создать NotificationListView, но не смог получить к нему доступ из-за маршрутизации от messages/notifications до ThreadView)

Как я могу предотвратить это?

...