School is a twelve-year jail sentence where bad habits are the only curriculum truly learned.
John Taylor Gatto
New forum topics
Recent comments
- found OpenCMS better than
19 weeks 4 days ago - For me it was citype not
19 weeks 4 days ago - I would rather not worry
20 weeks 12 hours ago - Hi there ,
i have integrate
21 weeks 1 day ago - Works a treat. I recommend
22 weeks 5 days ago - Any updates on a Drupal 6
24 weeks 4 days ago - Are you people really that
24 weeks 6 days ago - video display quality in
26 weeks 3 days ago - yes it's true. joomla is hard
26 weeks 3 days ago - About Twitter.
26 weeks 6 days ago
When coding Django one of my most important goals is avoiding all kind of hardcoded urls in my applications. Let's see this line from one of my app's URLConf:
url(r'^edit/object/(?P<object_id>\w+)/$', 'object_edit', name='object_edit'),
This points to a page like /edit/object/123, notice I'm using a named pattern here, and calls a view defined with:
def object_edit(request, object_id):
Then I can do what I need with the object identified by object_id.
Now, imagine I have a list of objects in a template so I can add an edit link to each one of them, something like this:
<a href="{% url object_edit object_id=4}">edit object</a>
Notice that 4? I put it there just for making my point clear, what I really want to do is something like:
<a href="{% url object_edit object_id={{ object.object_id }} %}">edit object</a>
but that produces an error like this: TemplateSyntaxError at ... Could not parse the remainder: '{{' from '{{'.
It seems a template variable can't be used inside a {% url %} tag, and I guess the same applies to any template tag. After thinking a bit about how other tags work with variables, the {% for %} loop for example, I decided to get rid of the {{ and }}:
<a href="{% url object_edit object_id=object.object_id %}">edit object</a>
And yep, that worked. I hope this helps anybody else having a similar question.
Related content
- Django questions and answers with a Swedish guy
- How to use a public IP address with Google App Engine development server
- How to setup Apache, mod_python and a reverse proxy to Lighttpd for Django on Ubuntu
- PYTHONPATH and configuring Django with Apache and mod_python
- HTTP 200 testing Django applications with Facebook


Join the conversation
Thanks, solved my problem
Thanks, solved my problem