gpt4 book ai didi

python - Django非唯一查询

转载 作者:太空宇宙 更新时间:2023-11-03 18:37:06 25 4
gpt4 key购买 nike

所以我正在进行一个如下开头的查询:

queryset = FooBar.objects.filter(example__pk__lt=50)

其中 example 是外键。因此,这将获取连接到前 50 个 Example 之一的所有 FooBar 对象。但这是我的目标:

我想让这个查询集仅包含 FooBar 对象,其中不同的字段,比如说目标不不同.

我可以通过以下循环来做到这一点:

target_ids = [] #holding a check list for comparison
correct_targets = [] #holding the objects I want to have
for item in queryset: #iteration
target_ids.append(item.example.pk) #send primary key to check list
if target_ids.count(item.example.pk) == 2: #check if there has been more than one (if there is more than two I don't send another correct target since I would have already sent it previously)
correct_targets.append(item) #send correct target

我希望有一种方法可以从我的 queryset 中获取这些对象的查询集,而无需循环。 这可能吗?

最佳答案

这是可能的,使用 filtering on annotation

from django.db.models import Count
qs = FooBar.objects.filter(example__pk__lt=50)
qs = qs.annotate(num_examples=Count('example')).filter(num_examples__gt=1)

关于python - Django非唯一查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21340698/

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