Uso de comillas en los parámetros de {% url %} en Django

Sólo un idiota puede ser totalmente feliz.

Mario Vargas Llosa

Suscríbete al feed

Comentarios recientes

Hace poco comenté sobre el importante detalle de usar las comillas correctas en Python y simplejson y hoy me encuentro con otro caso similar en Django.

El detalle se encuentra en las plantillas de Django, me estoy refiriendo a la versión 1.0, al usar la etiqueta {% url %}, muy útil para nombres en los patrones de los URL.

Imaginemos un url como el siguiente en tu URLConf:

url(r'^add/chatroom/(?P\w+)$', 'myapp_chatroom_add', name='myapp_chatroom_add'),

Ahora es posible insertar {% url %} en una plantilla para obtener el url correcto de esta manera:

{% url myapp_chatroom_add chatroom_data="abc" %}

Nota que estoy pasando el texto "abc" entre comillas dobles al parámetro chatroom_data de la función.

Y aquí viene lo importante, las siguientes dos formas no funcionarán:

{% url myapp_chatroom_add chatroom_data=abc %}

pues no usa comillas. Ni esta:

{% url myapp_chatroom_add chatroom_data='abc' %}

que utiliza comillas simples.

Los errores pueden variar dependiendo del contexto pero lo importante es notar que al pasar parámetros que no sean números a {% url %} es necesario usar comillas dobles.

Si estás usando números puedes usar comillas dobles o remover por completo las comillas pero las comillas simples tampoco funcionarán.

Publica comentarios relevantes, usa español correcto y no envíes publicidad. Creemos discusiones en las que valga la pena participar. Puedes usar Markdown.

Tu comentario