【发布时间】:2018-06-03 02:48:26
【问题描述】:
我有以下型号:
class Profile(models.Model):
pass
class Team(models.Model):
...
members = models.ManyToManyField("main.Profile", through='main.TeamMember')
class TeamMember(models.Model):
profile = models.ForeignKey('Profile')
team = models.ForeignKey('Team')
role = models.CharField(max_length=255)
因此,我尝试按具有特定角色的个人资料数量对团队进行排序,但我有一个查询,但它不起作用:
Team.objects.filter(members__role='ExampleRole').annotate(example_role_count=Count('members')).order_by('example_role_count')
它引发以下异常:
django.core.exceptions.FieldError: Related Field got invalid lookup: role
因为角色是 TeamMember 字段,而不是 Profile。那么,如何实现按指定角色的成员数量排序呢?
【问题讨论】:
标签: python django django-models orm django-orm