Opened 7 years ago

Closed 7 years ago

Last modified 5 years ago

#13052 closed (duplicate)

reverse() does not resolve correctly using namespaces in some cases

Reported by: trey@… Owned by: Florian Apolloner
Component: Uncategorized Version: master
Severity: Keywords:
Cc: Florian Apolloner Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: UI/UX:

Description

When reversing a set of included urls with a url prefix which contains a parameter, the resolver will treat the url chunk before the include as a prefix and not process it.

from django.conf.urls.defaults import *

app1 = (patterns('',
    url(r'^edit/(?P<object_id>\d+)/$', 'view', name='view'),
    url(r'^list/$', 'view', name='list'),
), 'myapp', 'theinstance1')

app2 = (patterns('',
    url(r'^edit/(?P<object_id>\d+)/$', 'view', name='view'),
    url(r'^list/$', 'view', name='list'),
), 'myapp', 'theinstance2')


urlpatterns = patterns('views',
    url(r'^site/$', 'view', name='view'),
    url(r'^site/(?P<site_id>\d+)/pages/', include(app1)),
    url(r'^site/', include(app2)),
)



>>> from django.core.urlresolvers import reverse
>>> reverse('view')
'/site/'
>>> reverse('view', current_app='theinstance1')
'/site/'
>>> reverse('myapp:view', current_app='theinstance1')
'/site/(?P%3Csite_id%3E%5Cd+)/pages/list/'
>>> reverse('myapp:list', current_app='theinstance1')
'/site/(?P%3Csite_id%3E%5Cd+)/pages/list/'

Change History (3)

comment:1 Changed 7 years ago by Florian Apolloner

Cc: Florian Apolloner added
Needs documentation: unset
Needs tests: unset
Owner: changed from nobody to Florian Apolloner
Patch needs improvement: unset
Status: newassigned

The problem starts here: http://code.djangoproject.com/browser/django/trunk/django/core/urlresolvers.py#L345 The extra part is just added to prefix, but it can contain parts which need to be reversed.

comment:2 Changed 7 years ago by Russell Keith-Magee

Resolution: duplicate
Status: assignedclosed

Duplicate of #11559

comment:3 Changed 5 years ago by Jacob

milestone: 1.2

Milestone 1.2 deleted

Note: See TracTickets for help on using tickets.
Back to Top