【问题标题】:Debugging URL Pattern in Django在 Django 中调试 URL 模式
【发布时间】:2013-06-20 00:39:15
【问题描述】:

我注意到我的一些 urlpattern 具有与其他不同的属性。值得注意的是 _urlconf_module_urlconf_name 丢失了。我在生产中遇到了大量AttributeError: 'RegexURLResolver' object has no attribute '_urlconf_module' 错误,这似乎是我得到的唯一线索。

有谁知道为什么 urlconf 的属性不同,如果这是一个问题,如何解决?

url(r'^accounts/register/$', RegistrationView.as_view(), name='registration_register'), 形式的一组 url 具有这些属性

{'_callback': <function app1.views.RegistrationView>,
 '_regex': '^accounts/register/$',
 '_regex_dict': {'en-us': re.compile(r'^accounts/register/$', re.UNICODE)},
 'default_args': {},
 'name': 'registration_register'} 

(r'^activation/', include('activation.urls')) 形式的另一个有这些

{'_app_dict': {},
 '_namespace_dict': {},
 '_regex': '^activation/',
 '_regex_dict': {'en-us': re.compile(r'^activation/', re.UNICODE)},
 '_reverse_dict': {},
 '_urlconf_module': <module 'activation.urls' from '<path to app2>/activation/urls.pyc'>,
 'app_name': None,
 'callback': None,
 'default_kwargs': {},
 'namespace': None,
 'urlconf_name': <module 'activation.urls' from '<path to app2>/activation/urls.pyc'>}

请注意,当错误开始发生时我已升级到 django-registration-1.0,这需要我使用基于类的视图,这可能是根本原因之一。

【问题讨论】:

    标签: python django url django-registration


    【解决方案1】:

    第二个 URL 模式具有 _urlconf_module_urlconf_name 属性,因为您包含另一个 URL conf。第一个 URL 模式不包含 URL conf,因此没有这些属性。

    为什么您认为这些内部因素会导致问题?更有可能是您自己的代码有问题。除非您包含完整的回溯,否则很难为您提供帮助。

    如果回溯不包含任何有用的信息,这通常意味着您的某个模块中存在错误,这会阻止您的 URL conf 加载。尝试在 shell 中导入单个模块以跟踪问题,或从 URL 配置中删除条目,直到您有一个重现问题的最小示例。如果其他人可以重现您的问题,那么他们更有可能帮助您解决问题。

    【讨论】:

    • 感谢您的澄清。关键是我唯一的痕迹是这个 - stackoverflow.com/questions/17255561/…。我无法在本地重现该错误,并且仅在生产中发生。跟踪没有指出我的应用程序的任何部分,我预感它可能仅在应用程序重新启动时发生。
    • 本地环境和生产环境有什么区别?你在本地跑哨吗?
    • 不,我没有在本地运行哨兵。将运行哨兵并检查
    • 在本地运行 Sentry 会给我同样的错误。看起来应用程序启动与此错误之间存在相关性。跟踪仍然没有太大帮助。似乎是某种时间问题。
    猜你喜欢
    • 1970-01-01
    • 2012-07-26
    • 2011-04-06
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 2016-06-07
    • 2011-12-16
    • 1970-01-01
    相关资源
    最近更新 更多