问题
I'm looking for a good tutorial for URL namespaces in Django. I find official documentation a little too sparse - it lacks good examples. I found similar question here on stack, but the answers didn't help me to fully understand the subject either.
回答1:
Agreed, the docs for this are rather confusing. Here's my reading of it (NB: all code is untested!):
In apps.help.urls
:
urlpatterns = [
url(r'^$', 'apps.help.views.index', name='index'),
]
In your main urls.py
:
urlpatterns = [
url(r'^help/', include('apps.help.urls', namespace='help', app_name='help')),
url(r'^ineedhelp/', include('apps.help.urls', namespace='otherhelp', app_name='help')),
]
In your template:
{% url help:index %}
should produce the url /help/
.
{% url otherhelp:index %}
should produce the url /ineedhelp/
.
{% with current_app as 'otherhelp' %}
{% url help:index %}
{% endwith %}
should likewise produce the url /ineedhelp/
.
Similarly, reverse('help:index')
should produce /help/
.
reverse('otherhelp:index')
should produce /ineedhelp/
.
reverse('help:index', current_app='otherhelp')
should likewise produce /ineedhelp/
.
Like I said, this is based on my reading of the docs and my existing familiarity with how things tend to work in Django-land. I haven't taken the time to test this.
回答2:
This is from the docs
(r'^help/', include('apps.help.urls', namespace='foo', app_name='bar')),
Maybe you should be more specific about what you are trying to do.
来源:https://stackoverflow.com/questions/2126489/anyone-knows-good-django-url-namespaces-tutorial