Respostas:
Não, porque os parâmetros GET não fazem parte do URL.
Basta adicioná-los ao final:
<a href="{% url myview %}?office=foobar">
Para Django 1.5+
<a href="{% url 'myview' %}?office=foobar">
example.com/myview/?office=foobar
vez de example.com/myview?office=foobar
?
Uma maneira de misturar os parâmetros atuais com os novos:
{% url 'order_list' %}?office=foobar&{{ request.GET.urlencode }}
Modifique suas configurações para ter uma variável de solicitação:
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP
TEMPLATE_CONTEXT_PROCESSORS = TCP + (
'django.core.context_processors.request',
)
Use urlencode
se o argumento for uma variável
<a href="{% url 'myview' %}?office={{ some_var | urlencode }}">
ou então, caracteres especiais como espaços podem quebrar seu URL.
Documentação: https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#urlencode
some_var
variável retorna vazio no href, mas é mostrado para ser preenchida se usada em outro lugar no modelo. v2.1
Primeiro, uma resposta boba:
{% url my-view-name %}?office=foobar
Uma resposta séria: Não, você não pode. O resolvedor de URL do Django corresponde apenas à parte do caminho da URL, portanto, a {% url %}
tag só pode reverter essa parte da URL.
Experimente isto:
{% url 'myview' office=foobar %}
Funcionou para mim Basicamente, ele faz uma reversão nesse link e aplica os argumentos fornecidos.