设置可重用应用程序的URL命名空间(Django 1.9+)

示例

通过设置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/'

如果未显式设置实例名称空间,则默认为应用程序名称空间。