Answers:
不可以,因为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 }}">
否则空格等特殊字符可能会破坏您的网址。
文档:https : //docs.djangoproject.com/en/3.0/ref/templates/builtins/#urlencode
some_var
变量在href中返回空,但如果在模板的其他地方使用,则显示为已填充。v2.1
首先,一个愚蠢的答案:
{% url my-view-name %}?office=foobar
一个严重的答案:不,你不能。Django的URL解析器仅匹配URL的路径部分,因此{% url %}
标记只能反转URL的该部分。