Opened 18 years ago
Closed 17 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 , 18 years ago
| Attachment: | support-for-more-flexible-url-regex-patterns.patch added | 
|---|
comment:1 by , 18 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 , 18 years ago
| Component: | HTTP handling → Core framework | 
|---|
comment:3 by , 18 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 , 17 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.