Risposte:
No, perché i parametri GET non fanno parte dell'URL.
Aggiungili semplicemente alla fine:
<a href="{% url myview %}?office=foobar">
Per Django 1.5+
<a href="{% url 'myview' %}?office=foobar">
example.com/myview/?office=foobar
invece di example.com/myview?office=foobar
?
Un modo per mescolare i parametri attuali con quelli nuovi:
{% url 'order_list' %}?office=foobar&{{ request.GET.urlencode }}
Modifica le tue impostazioni per avere la variabile di richiesta:
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP
TEMPLATE_CONTEXT_PROCESSORS = TCP + (
'django.core.context_processors.request',
)
Utilizzare urlencode
se l'argomento è una variabile
<a href="{% url 'myview' %}?office={{ some_var | urlencode }}">
oppure caratteri speciali come gli spazi potrebbero interrompere il tuo URL.
Documentazione: https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#urlencode
some_var
variabile restituisce vuota in href ma si mostra riempita se usata altrove nel modello. v2.1
Innanzitutto, una risposta sciocca:
{% url my-view-name %}?office=foobar
Una risposta seria: No, non puoi. Il risolutore di URL di Django corrisponde solo alla parte del percorso dell'URL, quindi il {% url %}
tag può invertire solo quella parte dell'URL.
Prova questo:
{% url 'myview' office=foobar %}
Ha funzionato per me. Fondamentalmente fa il contrario su quel collegamento e applica gli argomenti forniti.