Ответы:
Нет, потому что параметры GET не являются частью URL-адреса.
Просто добавьте их в конец:
<a href="{% url myview %}?office=foobar">
Для Django 1.5+
<a href="{% url 'myview' %}?office=foobar">
example.com/myview/?office=foobar
вместо example.com/myview?office=foobar
?
Способ перепутать текущие параметры с новыми:
{% url 'order_list' %}?office=foobar&{{ request.GET.urlencode }}
Измените свои настройки, чтобы иметь переменную запроса:
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP
TEMPLATE_CONTEXT_PROCESSORS = TCP + (
'django.core.context_processors.request',
)
Используйте, urlencode
если аргумент является переменной
<a href="{% url 'myview' %}?office={{ some_var | urlencode }}">
иначе специальные символы, такие как пробелы, могут нарушить ваш URL.
Документация: https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#urlencode
some_var
переменная возвращает пустое значение в href, но показано, что оно заполнено, если используется в другом месте в шаблоне. v2.1
Во-первых, глупый ответ:
{% url my-view-name %}?office=foobar
Серьезный ответ: нет, нельзя. Преобразователь URL-адресов Django соответствует только части пути URL-адреса, поэтому {% url %}
тег может изменить только эту часть URL-адреса.
Попробуй это:
{% url 'myview' office=foobar %}
У меня это сработало. По сути, он выполняет обратную операцию по этой ссылке и применяет данные аргументы.