将 GET 参数的查询字符串传递给 URL

问题描述 投票:0回答:0

在我的 Django 项目中,我有一个包含多个表单的页面,它使用

method="GET"
。在此页面上显示了项目列表,用户可以在其中对这些项目的不同页面进行排序、筛选和解析。

例如,如果用户选择第 4 页并将最高价格设置为 10 英镑,我希望 url 看起来像这样:

http://127.0.0.1:8000/trending/?page=4&max_price=10

问题是提交表单时它会覆盖 URL 中先前的 GET 参数

例如

用户选择第4页

http://127.0.0.1:8000/trending/?page=4

然后用户将最高价格设置为 £10

http://127.0.0.1:8000/trending/?max_price=10

这是错误的,因为两个参数应该一起出现在 URL 中。

我想出了一个方法把这些参数的状态保存在里面

request.session
然后使用存储在
request.session
中的值创建一个查询字符串,但我想不出一种方法将查询字符串传递到 URL

def trending(request):
    query_string = '&'.join([
        f'{param}={request.session.get(param)}' 
        for param in get_params if request.session.get(param) != None
    ])

return render(request, "App/trending.html", context=context)

query_string => page=1&max_price=10

python django django-forms get httprequest
© www.soinside.com 2019 - 2024. All rights reserved.