gpt4 book ai didi

空列表上的 Django 查询集过滤器

转载 作者:行者123 更新时间:2023-12-02 01:20:11 24 4
gpt4 key购买 nike

我正在构建我通过 GET 传递给查询集过滤器的动态过滤器:

for k, v in request.GET.iteritems():
kwargs[str(k)] = str(v)
students = models.Student.objects.filter( **kwargs )

它几乎适用于我向它提出的所有查询。但是,我有一个具有多对多关系的相关模型,Group。因此,一个学生可以是多个组的成员。我可以使用以下方法过滤属于给定组的学生:'groups__in='+str(group.id)

例如-//example.com/students/?groups__in=1

但我不知道如何过滤不属于任何组的学生。我尝试了以下但没有成功:

groups__in=None # students == []
groups__exact=None # students == []
groups__iexact=None # FAIL not that I really expected this to work
groups__isnull=True # students == []

最后一个版本是我希望实际运行的版本。我确定我可以通过将顶部代码修改为类似的代码来使它工作

if request.GET['something']:
students = models.Student.objects.exclude(groups__isnull=False)
else:
students = models.Student.objects.filter( **kwargs )

所以我想问题变成了,我该如何创建

students = models.Student.objects.exclude(groups__isnull=False)

使用.filter()?

最佳答案

也许我不明白这个问题。但我看到:

list(MyMod.objects.exclude(foo__isnull=False)
) == list(MyMod.objects.filter(foo__isnull=True))

关于空列表上的 Django 查询集过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5760419/

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