Ответ 1
Нет, поскольку параметры GET не являются частью URL.
Просто добавьте их в конец:
<a href="{% url myview %}?office=foobar">
Для Django 1.5 +
<a href="{% url 'myview' %}?office=foobar">
Я хотел бы добавить параметры запроса в тег {% url %}
, например ?office=foobar
.
Возможно ли это? Я ничего не могу найти на нем.
Нет, поскольку параметры GET не являются частью URL.
Просто добавьте их в конец:
<a href="{% url myview %}?office=foobar">
Для Django 1.5 +
<a href="{% url '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.
Документация url
не упоминает метод, непосредственно использующий url
: https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#url
Во-первых, глупый ответ:
{% url my-view-name %}?office=foobar
Серьезный anwser: Нет, вы не можете. Адресатор URL-адреса Django соответствует только URL-адресу пути, поэтому тег {% url %}
может только отменить эту часть URL-адреса.
Попробуй это:
{% url 'myview' office=foobar %}
Это сработало для меня. Он в основном делает обратное для этой ссылки и применяет заданные аргументы.