#13525: URL Reverser chokes on nested groups
----------------------------+-----------------------------------------------
Reporter: nickretallack | Owner: nobody
Status: new | Milestone:
Component: Core framework | Version: 1.1
Keywords: | Stage: Unreviewed
Has_patch: 0 |
----------------------------+-----------------------------------------------
{{{
## urls.py
from django.conf.urls.defaults import *
from django.http import HttpResponse
urlpatterns = patterns('',
url(r'^export1\.(?P<format>\w+)$', lambda request:
HttpResponse("THIS"), name='this'),
url(r'^export2(\.(?P<format>\w+))?$', lambda request:
HttpResponse("THAT"), name='that'),
)
## paste into python manage.py shell
from django.core.urlresolvers import reverse, resolve
# Both urls resolve
resolve('/export1.json')[0](None).content
resolve('/export2.json')[0](None).content
# These reverse
reverse('this', args=['json'])
reverse('this', kwargs={'format':'json'})
# These don't
reverse('that', args=['json'])
reverse('that', kwargs={'format':'json'})
## Shell session output
>>> from django.core.urlresolvers import reverse, resolve
>>>
>>> # Both urls resolve
>>> resolve('/export1.json')[0](None).content
'THIS'
>>> resolve('/export2.json')[0](None).content
'THAT'
>>>
>>> # These reverse
>>> reverse('this', args=['json'])
'/export1.json'
>>> reverse('this', kwargs={'format':'json'})
'/export1.json'
>>>
>>> # These don't
>>> reverse('that', args=['json'])
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/local/Cellar/python/2.6.4/lib/python2.6/site-
packages/django/core/urlresolvers.py", line 350, in reverse
*args, **kwargs)))
File "/usr/local/Cellar/python/2.6.4/lib/python2.6/site-
packages/django/core/urlresolvers.py", line 300, in reverse
"arguments '%s' not found." % (lookup_view_s, args, kwargs))
NoReverseMatch: Reverse for 'that' with arguments '('json',)' and keyword
arguments '{}' not found.
}}}
--
Ticket URL: <http://code.djangoproject.com/ticket/13525>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en.