通过设置app_name属性,将应用程序的URLconf配置为自动使用URL命名空间:
# In <myapp>/urls.py from django.conf.urls import url from .views import overview app_name = 'myapp' urlpatterns = [ url(r'^$', overview, name='overview'), ]
这会将应用程序名称空间设置为'myapp'根URLconf>中包含的名称空间。可重用应用程序的用户除了包括URL之外,无需进行任何其他配置:
# In <myproject>/urls.py from django.conf.urls import include, url urlpatterns = [ url(r'^myapp/', include('myapp.urls')), ]
您的可重用应用程序现在可以使用应用程序名称空间来反向URL:
>>> fromdjango.urlsimport reverse >>> reverse('myapp:overview') '/myapp/overview/'
根URLconf仍可以使用以下namespace参数设置实例名称空间:
# In <myproject>/urls.py urlpatterns = [ url(r'^myapp/', include('myapp.urls', namespace='mynamespace')), ]
应用程序名称空间和实例名称空间都可以用于反向URL:
>>> fromdjango.urlsimport reverse >>> reverse('myapp:overview') '/myapp/overview/' >>> reverse('mynamespace:overview') '/myapp/overview/'
如果未显式设置实例名称空间,则默认为应用程序名称空间。