Как в Django создать запрос COUNT для ManyToManyField?
Мои модели выглядят следующим образом, и я хочу, чтобы все люди, чье имя начиналось с буквы А и являлись лордом или повелителем хотя бы одного места, и упорядочивали результаты по имени.
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'))