2013-06-23 61 views
0

我注意到我的一些urlpatterns具有不同於其他屬性的屬性。值得注意的是缺少_urlconf_module_urlconf_name。我在生產中遇到了大量的AttributeError: 'RegexURLResolver' object has no attribute '_urlconf_module'錯誤,這似乎是我得到的唯一線索。在Django中調試URL模式

有沒有人知道爲什麼urlconf的屬性是不同的,如果這是一個問題,如何解決它?形式url(r'^accounts/register/$', RegistrationView.as_view(), name='registration_register'),的網址

一組具有這些屬性

{'_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當錯誤開始發生這要求我使用基於類的視圖,並且可能是其中一個基本原因。

回答

0

第二個URL模式具有_urlconf_module_urlconf_name屬性,因爲您包含另一個URL conf。第一個URL模式不包含URL conf,因此沒有這些屬性。

你爲什麼認爲這些內部事件導致了這個問題?這很可能是你自己的代碼有問題。除非包含完整的追溯,否則很難幫助您。

如果回溯沒有包含任何有用的信息,那麼通常意味着您的某個模塊發生錯誤,從而無法加載URL conf。嘗試在shell中導入單個模塊以追蹤問題,或者從您的URL配置中刪除條目,直到您有一個能夠再現問題的最小示例。如果其他人可以重現您的問題,他們更有可能幫助您解決問題。

+0

感謝您的澄清。重點是我唯一的蹤跡是這個 - http://stackoverflow.com/questions/17255561/attributeerror-regexurlresolver-object-has-no-attribute-urlconf-module。我無法在本地重現錯誤,只會在生產中發生。跟蹤沒有指出我的應用程序的任何部分,我有一個預感,它可能只發生在應用程序重新啓動。 –

+0

您的本地環境和生產環境有什麼區別?你在本地跑哨兵嗎? – Alasdair

+0

不,我沒有在當地運行哨兵。運行哨兵並檢查 –