Django:用ManyToManyField count查询?

2024-06-13 21:56:42 发布

您现在位置:Python中文网/ 问答频道 /正文

在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)

所以我的查询应该是这样的。。。但是我该如何构建第三条线呢?在

^{pr2}$

Tags: djangoname模型truemodelmodelscount名字
2条回答

在这种情况下,最好使用raw SQL。在

for p in Person.objects.raw('SELECT * FROM myapp_person WHERE...'):
    print p

事实上,你感兴趣的不是人数,而是关系中是否有成员。在

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

相关问题 更多 >