Opened 12 years ago
Closed 12 years ago
#21131 closed Bug (invalid)
Admin URL patterns are not aware of the app_namespace
| Reported by: | Markus Holtermann | Owned by: | Florian Apolloner |
|---|---|---|---|
| Component: | contrib.admin | Version: | 1.5 |
| Severity: | Normal | Keywords: | |
| Cc: | info@… | Triage Stage: | Unreviewed |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Given these files:
# testapp/views.py
from django.core.urlresolvers import reverse
from django.http import HttpResponse
def testview(request):
rev = reverse('admin:testview', current_app='something')
return HttpResponse('Some Text %s' % rev)
# testapp/urls.py
from django.conf.urls import patterns, url
urlpatterns = patterns('',
url(r'^', 'testapp.views.testview', name='testview')
)
# testproject/urls.py
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^foo/', include('testapp.urls', namespace='admin', app_name='something')),
)
I'd expect that the view testapp.views.testview is still available when resolving the 'admin:testview' with the current_app set explicitly. Instead I'm greeted with a NoReverseMatch at /foo/ error:
Traceback:
File "/home/markus/.venvs/django-namespace-test/lib/python3.3/site-packages/django/core/handlers/base.py" in get_response
115. response = callback(request, *callback_args, **callback_kwargs)
File "/home/markus/Coding/django-namespace-test/testapp/views.py" in testview
6. rev = reverse('admin:testview', current_app='something')
File "/home/markus/.venvs/django-namespace-test/lib/python3.3/site-packages/django/core/urlresolvers.py" in reverse
496. return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "/home/markus/.venvs/django-namespace-test/lib/python3.3/site-packages/django/core/urlresolvers.py" in _reverse_with_prefix
416. "arguments '%s' not found." % (lookup_view_s, args, kwargs))
Exception Type: NoReverseMatch at /foo/
Exception Value: Reverse for 'testview' with arguments '()' and keyword arguments '{}' not found.
Changing the order of the of the patterns in the ROOTURL_CONF makes the admin inaccessible:
Traceback:
File "/home/markus/.venvs/django-namespace-test/lib/python3.3/site-packages/django/core/handlers/base.py" in get_response
115. response = callback(request, *callback_args, **callback_kwargs)
File "/home/markus/.venvs/django-namespace-test/lib/python3.3/site-packages/django/contrib/admin/sites.py" in wrapper
219. return self.admin_view(view, cacheable)(*args, **kwargs)
File "/home/markus/.venvs/django-namespace-test/lib/python3.3/site-packages/django/utils/decorators.py" in _wrapped_view
91. response = view_func(request, *args, **kwargs)
File "/home/markus/.venvs/django-namespace-test/lib/python3.3/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
89. response = view_func(request, *args, **kwargs)
File "/home/markus/.venvs/django-namespace-test/lib/python3.3/site-packages/django/contrib/admin/sites.py" in inner
198. current_app=self.name):
File "/home/markus/.venvs/django-namespace-test/lib/python3.3/site-packages/django/core/urlresolvers.py" in reverse
496. return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "/home/markus/.venvs/django-namespace-test/lib/python3.3/site-packages/django/core/urlresolvers.py" in _reverse_with_prefix
416. "arguments '%s' not found." % (lookup_view_s, args, kwargs))
Exception Type: NoReverseMatch at /admin/
Exception Value: Reverse for 'logout' with arguments '()' and keyword arguments '{}' not found.
Change History (4)
comment:1 by , 12 years ago
| Cc: | added |
|---|---|
| Triage Stage: | Unreviewed → Accepted |
comment:2 by , 12 years ago
| Triage Stage: | Accepted → Unreviewed |
|---|
Um, MarkusH and I were talking about something slightly different, resetting to unreviewed.
comment:4 by , 12 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
Ok, I misread the docs. In the ROOTURL_CONF it must be
url(r'^foo/', include('testapp.urls', namespace='something', app_name='admin')),
to make it work.
Note:
See TracTickets
for help on using tickets.
I talked to apollo13 about this and therefore mark it as accepted.