Opened 18 years ago
Closed 17 years ago
#3525 closed (fixed)
{% url path.to.view %} fails with multiple patterns for the same function
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Template system | Version: | dev |
Severity: | Keywords: | url, template | |
Cc: | django@… | Triage Stage: | Accepted |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
If there are multiple patterns matching the same view function, it seems like, only the first match is considered.
Lets say a function has an optional "id" parameter which defaults to None and below is the patterns pointing that function.
(r'^(?P<slug>[-\w]+)/$', views.myfunc), (r'^(?P<slug>[-\w]+)/(?P<id>\d+)/$', views.myfunc),
In that case,
{% url views.myfunc slug=something,id=someint %}
fails to match anything, where we can expect it to match the second
pattern and return "/something/someint/"
Change History (5)
comment:1 by , 18 years ago
Triage Stage: | Unreviewed → Design decision needed |
---|
comment:2 by , 18 years ago
Description: | modified (diff) |
---|---|
Owner: | changed from | to
Status: | new → assigned |
comment:3 by , 18 years ago
Triage Stage: | Design decision needed → Accepted |
---|
oops... clicked the wrong box. Meant to change it to "accepted" not take assignment. Ah well ... I'm not working on this one, folks, so somebody else should feel free. :-)
comment:4 by , 18 years ago
Cc: | added |
---|
comment:5 by , 17 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
This was fixed by the introduction of named URL patterns, which provide a way to differentiate multiple patterns using the same view function.
Yep. A bug.