Opened 18 years ago
Closed 18 years ago
#4774 closed (invalid)
feature request: {% url %} should resolve pattern names
| Reported by: | Owned by: | Adrian Holovaty | |
|---|---|---|---|
| Component: | Template system | Version: | dev | 
| Severity: | Keywords: | ||
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no | 
| Needs tests: | no | Patch needs improvement: | no | 
| Easy pickings: | no | UI/UX: | no | 
Description
url template tag should work exactly like reverse(). It should also resolve the url pattern name.
Change History (4)
comment:1 by , 18 years ago
| Resolution: | → duplicate | 
|---|---|
| Status: | new → closed | 
comment:2 by , 18 years ago
| Resolution: | duplicate | 
|---|---|
| Status: | closed → reopened | 
I don't see how this is a dupe of anything. More precisely, I don't really understand what it is saying. Which features of reverse() are missing and needed in the url template tag?
Reopening for the time being until more information is available.
comment:3 by , 18 years ago
| Cc: | removed | 
|---|
in urls.conf you can define names for url patterns like:
(r'^accounts/profile/$', 'baklava.reiloy.shared_page.profile', {}, "profile")
reverse("profile") resolves to /accounts/profile/
{% url "profile" %} resolves to empty.
comment:4 by , 18 years ago
| Resolution: | → invalid | 
|---|---|
| Status: | reopened → closed | 
Leave out the quotes. The url tag is a slightly odd duck, in that literal strings are not parsed (because it only handles literal strings). You use a pattern name just like a view function name.
If you look in tests/regressiontests/templates/tests.py, you can see a few examples of pattern names being used.
Dupe of #3769