Django 解析一个 URL 模式,但不解析另一个
Django resolves one URL pattern, but not the other
我的根 url 配置文件是
urlpatterns = patterns(
'',
url(r'^config-menu/', include('configuration.urls')),
url(r'^', include('web.urls')),
)
和configuration.urls
看起来像这样
urlpatterns = patterns(
url(r'^$', ConfigHomeView.as_view(),
name='config_home'),
url(r'^address_labels/create$', AddressLabelCreateView.as_view(),
name='address_label_create'),
)
现在观察这个:
>>> reverse('address_label_create')
'/config-menu/address_labels/create'
>>> reverse('config_home')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/ruben/v3env/lib/python3.4/site-packages/django/core/urlresolvers.py", line 551, in reverse
return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "/home/ruben/v3env/lib/python3.4/site-packages/django/core/urlresolvers.py", line 468, in _reverse_with_prefix
(lookup_view_s, args, kwargs, len(patterns), patterns))
django.core.urlresolvers.NoReverseMatch: Reverse for 'config_home' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
为什么我能解决一个,但不能解决另一个?
patterns
的第一个参数应该是前缀,在本例中可能是 ''
。
在 patterns
之后包含 ''
像这样:
urlpatterns = patterns('',
url(r'^$', ConfigHomeView.as_view(),
name='config_home'),
url(r'^address_labels/create$', AddressLabelCreateView.as_view(),
name='address_label_create'),
)
这应该可以解决您的问题。
在模式后添加''
urlpatterns = patterns('',
url(r'^$', ConfigHomeView.as_view(),
name='config_home'),
)
我的根 url 配置文件是
urlpatterns = patterns(
'',
url(r'^config-menu/', include('configuration.urls')),
url(r'^', include('web.urls')),
)
和configuration.urls
看起来像这样
urlpatterns = patterns(
url(r'^$', ConfigHomeView.as_view(),
name='config_home'),
url(r'^address_labels/create$', AddressLabelCreateView.as_view(),
name='address_label_create'),
)
现在观察这个:
>>> reverse('address_label_create')
'/config-menu/address_labels/create'
>>> reverse('config_home')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/ruben/v3env/lib/python3.4/site-packages/django/core/urlresolvers.py", line 551, in reverse
return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "/home/ruben/v3env/lib/python3.4/site-packages/django/core/urlresolvers.py", line 468, in _reverse_with_prefix
(lookup_view_s, args, kwargs, len(patterns), patterns))
django.core.urlresolvers.NoReverseMatch: Reverse for 'config_home' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
为什么我能解决一个,但不能解决另一个?
patterns
的第一个参数应该是前缀,在本例中可能是 ''
。
在 patterns
''
像这样:
urlpatterns = patterns('',
url(r'^$', ConfigHomeView.as_view(),
name='config_home'),
url(r'^address_labels/create$', AddressLabelCreateView.as_view(),
name='address_label_create'),
)
这应该可以解决您的问题。
在模式后添加''
urlpatterns = patterns('',
url(r'^$', ConfigHomeView.as_view(),
name='config_home'),
)