Ich habe die folgenden Modelle:Django ORM von verwandten Bereich
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)
Also, ich versuche Teams nach Anzahl der Profile mit einer bestimmten Rolle zu bestellen, und ich hatte eine Abfrage, die nicht funktioniert:
Team.objects.filter(members__role='ExampleRole').annotate(example_role_count=Count('members')).order_by('example_role_count')
Es stellt sich die folgende Ausnahme:
django.core.exceptions.FieldError: Related Field got invalid lookup: role
weil Rolle ein Teammitglied Feld ist nicht Profil. Also, wie kann ich die Bestellung durch die Anzahl der Mitglieder mit einer bestimmten Rolle erreichen?