有办法调试Django的URL吗?

ffscu2ro  于 2023-11-20  发布在  Go
关注(0)|答案(3)|浏览(95)

我有一个Django网址的问题,我不能得到的底部。我已经尝试了answers to this question中给出的建议,但他们没有帮助。

/urls.py

urlpatterns = [
    ...
    path('duo/', include('duo.urls')),
    path('users/', include('users.urls')),
]

字符串

duo/urls.py

urlpatterns = [
    ...
    path('', include('users.urls')),
    ...
]

用户/urls.py

urlpatterns = [
    path('', views.SelectPartner.as_view(), name='select-partner'),
    ...
]


404-页面不存在页面不存在
我不知道这里发生了什么,因为项目中的任何地方都没有 accounts 这个词
有没有什么工具可以让我知道发生了什么?

wtlkbnrh

wtlkbnrh1#

您在某个地方需要登录,这会将您发送到默认登录页面位置
如果您打算使用默认身份验证,您可以添加这些视图

jhiyze9q

jhiyze9q2#

我想你忘了使用URL中的应用程序,然后进一步的参数.然后它将默认工作身份验证是在URL中可用,如果你要使用身份验证

nsc4cvqm

nsc4cvqm3#

对于调试Django URL的一般方法,您可以在URLResolver.resolve()中将断点插入django/urls/resolvers.py.。我通常将其设置为IDE条件断点,以便执行不会在每个HTTP请求和URL模式上停止。就在for pattern in self.url_patterns:循环中,我为唯一的URL路径添加了条件断点,唯一的模式-

# if your IDE doesn't do conditional breakpoints, just add an if-
if 'unique_path_part' in path and 'unique_url_pattern' in str(self) and 'more_unique_stuff' in str(pattern):
    # add breakpoint here, like [pudb](https://pypi.org/project/pudb/)
    # e.g. import pudb; pu.db

字符串
Django对为什么URL不匹配任何模式保持沉默,但这不一定是它的错。有时你必须用断点来冻结时间,以了解URL或模式中的错误。
我承认这很不好,但有时候它非常有用,特别是对于Django的新手,或者遇到模式问题的人(比如我遇到的正则表达式有点问题)

相关问题