variable template for examples bootstrap django django-templates

template - ¿Es posible pasar los parámetros de consulta a través de la etiqueta de plantilla{% url%} de Django?



django templates settings (4)

Me gustaría agregar parámetros de solicitud a una etiqueta {% url %} , como ?office=foobar .

es posible? No puedo encontrar nada en eso.


No, porque los parámetros GET no son parte de la URL.

Simplemente agrégalos al final:

<a href="{% url myview %}?office=foobar">

Para Django 1.5+

<a href="{% url ''myview'' %}?office=foobar">


Primero, una respuesta tonta:

{% url my-view-name %}?office=foobar

Un artículo serio: No, no puedes. La resolución de URL de Django solo coincide con la parte de la ruta de la URL, por lo que la etiqueta {% url %} solo puede revertir esa parte de la URL.


Una forma de confundir los parámetros actuales con uno nuevo:

{% url ''order_list'' %}?office=foobar&{{ request.GET.urlencode }}

Modifique su configuración para tener una variable de solicitud:

from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP TEMPLATE_CONTEXT_PROCESSORS = TCP + ( ''django.core.context_processors.request'', )


Use urlencode si el argumento es una variable

<a href="{% url ''myview'' %}?office={{ some_var | urlencode }}">

O bien, los caracteres especiales como espacios podrían romper tu URL.

La documentación de la url no menciona un método que utiliza url directamente: https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#url