gpt4 book ai didi

python - Django 使用 GET 参数构建对象过滤器

转载 作者:行者123 更新时间:2023-12-01 06:04:44 25 4
gpt4 key购买 nike

我有一个返回项目列表的页面,由于列表很大,我在其顶部放置了一个小过滤器表单,以让用户将 View 缩小到他们想要的范围。他们可以从几个下拉列表中选择值或将其留空。于是请求就来了:

/projects/?group=1&project_phase=

使用空的project_phase过滤器

/projects/?group=1&project_phase=2

具有定义的项目过滤器

这些名称正是我能够在 .filter() 中定义的属性。

我被困在将过滤器字符串放在一起的过滤器中 - 有没有通用的方法可以做到这一点?

最佳答案

也许你可以使用:

parameters = {field_name: value for field_name, value in request.GET.items()
if value and field_name in model._meta.get_all_field_names()}
model.objects.filter(**parameters)

正如下面的评论所建议的,有一些检查可以忽略不需要的参数:

  • 空值
  • 模型中未定义字段名称

这应该按照您的预期将 GET 请求中的所有参数传递给 filter 方法。

关于python - Django 使用 GET 参数构建对象过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8720326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com