views:

809

answers:

2

One of the things I find myself doing often is passing string literals as parameters to template tags or functions; for instance:

{% url my-url 'my_param' %}

Unfortunately, the django template engine doesn't let you do this. So I find myself doing this a lot in my view code:

my_context_dict['MY_PARAM'] = 'my_param'

and then in my view code:

{% url my-url MY_PARAM %}

Or creating a series of URL mappings, which I personally try to avoid.

Is it possible to use a string literal in Django templates? Or possibly a more elegant solution? I haven't seen anything on here or in the documentation.

+3  A: 

Use double quotes instead of single quotes:

{% url my_view "my_param" %}
Ayman Hourieh
+6  A: 

This feels wrong but is right.

<a href="{% url someting "param1" "param2" %}">text</a>

The nested ""'s don't seem like they should work. They do. The Django {% %} material is simply pulled out of the HTML without regard for surrounding context. So the "duplicated" "'s aren't really duplicated at all.

S.Lott