我想将请求参数添加到 {% url %}标记,如 ?office=foobar。
{% url %}
?office=foobar
这可能吗,我在上面什么都找不到。
不,因为 GET 参数不是 URL 的一部分。
简单地把它们加到最后:
<a href="{% url myview %}?office=foobar">
对于 Django 1.5 +
<a href="{% url 'myview' %}?office=foobar">
首先,一个愚蠢的回答:
{% url my-view-name %}?office=foobar
一个严肃的回答: 不,你不能。Django 的 URL 解析器只匹配 URL 的 路径部分,因此 {% url %}标记只能反转 URL 的该部分。
一种混淆电流参数和新参数的方法:
{% 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
urlencode
<a href="{% url 'myview' %}?office=\{\{ some_var | urlencode }}">
否则像空格这样的特殊字符可能会破坏 URL。
文件: https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#urlencode
试试这个:
{% url 'myview' office=foobar %}
它对我很有效,它基本上是对链接进行反向操作,并应用给定的参数。
如果您的 url (和视图)包含变量 office,那么您可以这样传递它:
office
{% url 'some-url-name' foobar %}
或者像这样,如果有多个参数:
{% url 'some-url-name' office='foobar' %}
文件: https://docs.djangoproject.com/en/3.1/ref/templates/builtins/#url
都试过了,都没用。 我的系统有:
以下是对我有效的方法: Py < br >
urlpatterns = [ path('', views.index, name='index'), path('single/', views.single, name='single'), ]
视野,视野
def single(request): url = request.GET.get('url') return HttpResponse(url)
从. html 文件调用
<a href={% url 'single' %}?url=\{\{url}} target="_self">
浏览器网址
http://127.0.0.1:8000/newsblog/single/?url=https://www.cnn.com/2022/08/16/politics/liz-cheney-wyoming-alaska-primaries/index.html