gpt4 book ai didi

django 有条件过滤对象

转载 作者:行者123 更新时间:2023-12-02 14:51:58 24 4
gpt4 key购买 nike

我想使用一组过滤器从数据库中检索一堆行。

我想知道条件过滤器是否适用于 django。也就是说,“如果变量不为 None 则进行过滤,否则不应用过滤”。

类似这样的事情:

user = User.objects.get(pk=1)
category = Category.objects.get(pk=1)
todays_items = Item.objects.filter(user=user, date=now()).conditional_filter(category=category))

我想做的是仅当类别不为“无”时才应用类别过滤器。

如果类别为“无”(意味着请求对象中未给出),则根本不会应用此过滤器。这会帮我避免很多“if-elif-else”的情况。

有办法做到这一点吗?

最佳答案

您可以链接查询:

user = User.objects.get(pk=1)
category = Category.objects.get(pk=1)
qs = Item.objects.filter(user=user, date=now())
if category:
qs = qs.filter(category=category)

由于查询集是延迟执行的,因此只有在显示项目时才会发生数据库命中。

关于django 有条件过滤对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12651211/

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