133 votes

Est-il possible de passer des paramètres de requête via la balise de template {Djol} de Django?

J'aimerais ajouter des paramètres de requête à une balise {% url %} , comme ?office=foobar .

Est-ce possible? Je ne trouve rien dessus.

195voto

Daniel Roseman Points 199743

Non, car les paramètres GET ne font pas partie de l'URL.

Ajoutez-les simplement à la fin:

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

Pour Django 1.5+

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

40voto

eri Points 845

Une façon de mélanger les paramètres actuels avec les nouveaux:

 {% url 'order_list' %}?page=1&{{ request.GET.urlencode }}
 

Modifiez vos paramètres pour avoir une variable de requête:

 from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP

TEMPLATE_CONTEXT_PROCESSORS = TCP + (
    'django.core.context_processors.request',
)
 

8voto

lqc Points 2498

Tout d'abord, une réponse idiote:

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

Une réponse sérieuse: Non, vous ne pouvez pas. Le résolveur d'URL de Django correspond uniquement à la partie chemin de l'URL. Par conséquent, la balise {% url %} ne peut inverser que cette partie de l'URL.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X