Me gustaría agregar parámetros de solicitud a una etiqueta {% url %}
, como ?office=foobar
.¿Es posible pasar los parámetros de consulta a través de la etiqueta de plantilla {% url%} de Django?
¿Esto es posible? No puedo encontrar nada en eso.
Me gustaría agregar parámetros de solicitud a una etiqueta {% url %}
, como ?office=foobar
.¿Es posible pasar los parámetros de consulta a través de la etiqueta de plantilla {% url%} de Django?
¿Esto es posible? No puedo encontrar nada en eso.
No, porque los parámetros GET no son parte de la URL.
simplemente añadirlos a la final:
<a href="{% url myview %}?office=foobar">
Para Django 1.5+
<a href="{% url 'myview' %}?office=foobar">
En primer lugar, una respuesta tonta:
{% url my-view-name %}?office=foobar
Un anwser grave: No, no puede 't. La resolución de URL de Django solo coincide con la ruta de la URL, por lo que la etiqueta {% url %}
solo puede revertir esa parte de la URL.
De hecho. Eso tiene sentido también ... Solo desearía que fuera un poco más elegante que eso. –
Siempre puede escribir una etiqueta personalizada más elegante - {% qpurl myview office = foobar%} por ejemplo. Esto también podría procesar los valores y codificarlos adecuadamente. – Spacedman
Una manera de mezclar los parámetros actuales con uno nuevo:
{% url 'order_list' %}?office=foobar&{{ request.GET.urlencode }}
modificar su configuración para tener variable request:
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP
TEMPLATE_CONTEXT_PROCESSORS = TCP + (
'django.core.context_processors.request',
)
Uso urlencode
si el argumento es una variable
<a href="{% url 'myview' %}?office={{ some_var | urlencode }}">
o bien especial los caracteres como espacios pueden romper su URL.
Documentación de url
no menciona un método que utiliza directamente url
: https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#url
Bueno, técnicamente son. De acuerdo con [RFC 1738] (http://www.ietf.org/rfc/rfc1738.txt), una URL HTTP toma la forma: http: //: /? . –
naktinis
@naktinis Una URL HTTP, sí. Una URL de Django, [no tanto] (https://docs.djangoproject.com/en/1.4/topics/http/urls/#how-django-processes-a-request). Entonces, para varias definiciones de "URL", ambos son correctos: P –
¿Esto no da como resultado la barra final que interrumpe la url, como 'example.com/myview/? Office = foobar' en lugar de' example.com/myview ? office = foobar'? –