Jawaban:
Tidak, karena parameter GET bukan bagian dari URL.
Cukup tambahkan ke bagian akhir:
<a href="{% url myview %}?office=foobar">
Untuk Django 1.5+
<a href="{% url 'myview' %}?office=foobar">
example.com/myview/?office=foobar
bukan example.com/myview?office=foobar
?
Cara untuk mencampur parameter saat ini dengan yang baru:
{% url 'order_list' %}?office=foobar&{{ request.GET.urlencode }}
Ubah setelan Anda agar memiliki variabel permintaan:
from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP
TEMPLATE_CONTEXT_PROCESSORS = TCP + (
'django.core.context_processors.request',
)
Gunakan urlencode
jika argumennya adalah variabel
<a href="{% url 'myview' %}?office={{ some_var | urlencode }}">
atau karakter khusus seperti spasi dapat merusak URL Anda.
Dokumentasi: https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#urlencode
some_var
variabel kembali kosong di href tetapi terbukti terisi jika digunakan di tempat lain di template. v2.1
Pertama, jawaban konyol:
{% url my-view-name %}?office=foobar
Jawaban yang serius: Tidak, Anda tidak bisa. Pemecah URL Django hanya cocok dengan bagian jalur dari URL, dengan demikian {% url %}
tag hanya dapat membalikkan bagian dari URL itu.
Coba ini:
{% url 'myview' office=foobar %}
Itu berhasil untuk saya. Ini pada dasarnya melakukan kebalikan pada tautan itu dan menerapkan argumen yang diberikan.