gpt4 book ai didi

python - Django:查询ManyToManyField计数?

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

在 Django 中,如何为 ManyToManyField 构造 COUNT 查询?

我的模型如下,我想获取所有名字以A开头并且至少是一个地方的领主或霸主的人,并按名字对结果进行排序。

class Manor(models.Model):
lord = models.ManyToManyField(Person, null=True, related_name="lord")
overlord = models.ManyToManyField(Person, null=True, related_name="overlord")
class Person(models.Model):
name = models.CharField(max_length=100)

所以我的查询应该看起来像这样......但是我如何构建第三行?

people = Person.objects.filter(
Q(name__istartswith='a'),
Q(lord.count > 0) | Q(overlord.count > 0) # pseudocode
).order_by('name'))

最佳答案

实际上,您感兴趣的不是这里的计数,而是该关系中是否有任何成员。

Q(lord__isnull=False) | Q(overlord__isnull=False) 

关于python - Django:查询ManyToManyField计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4556294/

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