我有一个名为chat
的Django应用,其根urls.py
看起来像这样
path('messages/', include('chat.urls')),
但是下面的网址在聊天应用urls.py
中引起了问题
re_path(r"^(?P<username>[\w.@+-]+)", login_required(chat_views.ThreadView.as_view()), name='thread'),
正在发生的事情是不存在抛出404的问题 转到诸如
的组合网址时出错localhost/messages/blahblah/02
相反,它会抛出
NOT NULL constraint failed: chat_thread.second_id
因为假设blahblah/02
是用户名,并且将其映射到ThreadView
,而用户名却无法从2个用户那里获取thread
对象。
因此,从本质上讲,我尝试在chat
应用中创建的任何其他URL模式均无法正确路由。 (示例我尝试创建一个NotificationListView
,但是由于将messages/notifications
路由到ThreadView
而无法访问它)
如何阻止这种情况发生?