我使用的是django-filter,我想链接到带有预设过滤器的视图.

这个时候,我是这样做的:

<a href='{{ url "或der_list" }}/?year=2023'>

urlnext = (
    reverse('或der_list') +
    "?year=2023"
)
return HttpResponseRedirect(urlnext)

I would like to know if exists a m或e elegant approach. Thanks

推荐答案

使用?year=2023不是一个好主意.对于2023来说,这确实不是问题.但是假设value本身包含一个问号或与号,那么这将生成一个类似?keyword=foo&bar&key=bar的查询,因此它将"切断"&bar.

你可以用QueryDict来做这件事,这基本上就是request.GETrequest.POST:

from django.http import QueryDict

qd = QueryDict(mutable=True)
qd['year'] = 2023

return HttpResponseRedirect(f'{reverse('order_list')}?{qd.urlencode()}')

例如,如果值(或键)包含与号或问号,则会显示percent-encode [wiki]个:

>>> qd.urlencode()
'keyword=foo%26bar%3F'

Django相关问答推荐

批量删除多对多条目?

在保存新实例之前删除一个实例(Django模型保存方法)

Django www.example.com从常量列表中删除值

测试DRF中需要授权头

无法将关键字average_rating解析为字段

在Django的个人页面中的问题

我如何获得已循环的每个项目的名称?

Django过滤器查询外键

Apache + mod_wsgi 与 nginx + gunicorn

django- nginx: [emerg] open() "/etc/nginx/proxy_params" 在 /etc/nginx/sites-enabled/myproject:11 中失败(2:没有这样的文件或目录)

在 django 模板中访问元组

Django UrlResolver,在运行时添加 url 进行测试

如何创建一个在复选框右侧显示复选框标签的 Django 表单?

Django - 了解 X-Sendfile

Django unique=True 不工作

Django:何时使用 QuerySet 无

django 如何知道已经运行了哪些迁移?

Django中reverse()和reverse_lazy()的区别

Numpy 数组到 base64 并返回到 Numpy 数组 - Python

APIView 类和视图集类之间的区别?