Opened 17 years ago
Closed 16 years ago
#6934 closed (fixed)
django.core.urlresolvers.reverse fails sometimes.
Reported by: | Sebastian Noack | Owned by: | Malcolm Tredinnick |
---|---|---|---|
Component: | Core (Other) | Version: | dev |
Severity: | Keywords: | ||
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | yes |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
If you have a url pattern, containing...
- nested groups
- not-matching groups
- look-ahead or look-behind groups
...django.core.urlresolvers.reverse will fail, because of following reasons:
- To replace the groups re.sub with
r'\(([^)]+)\)'
is used, which matches only until the first ')', doesn't matter how much groups are nested. - All groups which are no named groups are assumed to be positional groups, regardless if they might be not-matching, look-ahead or look-behind groups.
Attachments (1)
Change History (5)
by , 17 years ago
Attachment: | support-for-more-flexible-url-regex-patterns.patch added |
---|
comment:1 by , 17 years ago
Description: | modified (diff) |
---|---|
Owner: | changed from | to
Patch needs improvement: | set |
Summary: | [PATCH] django.core.urlresolvers.reverse fails sometimes. → django.core.urlresolvers.reverse fails sometimes. |
Triage Stage: | Unreviewed → Accepted |
comment:2 by , 17 years ago
Component: | HTTP handling → Core framework |
---|
comment:3 by , 17 years ago
This ticked is open and tagged as "Patch needs improvement" now over a month. Please can you tell me, what you don't like about my patch. So I can an acceptable patch for you. Thanks.
comment:4 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
(In [8760]) A rewrite of the reverse URL parsing: the reverse() call and the "url" template tag.
This is fully backwards compatible, but it fixes a bunch of little bugs. Thanks
to SmileyChris and Ilya Semenov for some early patches in this area that were
incorporated into this change.
This is a dupe of #2977, amongst others. But I'll leave it open because the patch is an interesting approach. I really need to finish fixing this, so maybe this will get me motivated.