如何通过其外键字段对相关字段进行排序?
How to order related field by its foreign key fields?
假设我有如下三个模型;
class Stats(models.Model):
gp = models.IntegerField(default=0)
won = models.IntegerField(default=0)
drawn = models.IntegerField(default=0)
lose = models.IntegerField(default=0)
gf = models.IntegerField(default=0)
ga = models.IntegerField(default=0)
gd = models.IntegerField(default=0)
pts = models.IntegerField(default=0)
class Team(models.Model):
team_name = models.CharField(max_length=50)
stats = models.ForeignKey(Stats)
class Group(models.Model):
group_name = models.CharField(max_length=1)
teams = models.ManyToManyField(Team)
而且,这是我的组模型序列化程序
class GroupSerializer(serializers.ModelSerializer):
teams = TeamSerializer(read_only=True, many=True)
class Meta:
model = Group
fields = '__all__'
但是,我想根据统计数据的 pts 和 gd 字段对球队进行排序。我尝试将 order_with_respect_to='stats'
添加到团队模型,将 ordering = ['pts', 'gd']
添加到统计模型,但没有成功。
尝试以下操作:
class Team(models.Model):
team_name = models.CharField(max_length=50)
stats = models.ForeignKey(Stats)
class Meta:
ordering = ['stats__pts', 'stats__gd']
假设我有如下三个模型;
class Stats(models.Model):
gp = models.IntegerField(default=0)
won = models.IntegerField(default=0)
drawn = models.IntegerField(default=0)
lose = models.IntegerField(default=0)
gf = models.IntegerField(default=0)
ga = models.IntegerField(default=0)
gd = models.IntegerField(default=0)
pts = models.IntegerField(default=0)
class Team(models.Model):
team_name = models.CharField(max_length=50)
stats = models.ForeignKey(Stats)
class Group(models.Model):
group_name = models.CharField(max_length=1)
teams = models.ManyToManyField(Team)
而且,这是我的组模型序列化程序
class GroupSerializer(serializers.ModelSerializer):
teams = TeamSerializer(read_only=True, many=True)
class Meta:
model = Group
fields = '__all__'
但是,我想根据统计数据的 pts 和 gd 字段对球队进行排序。我尝试将 order_with_respect_to='stats'
添加到团队模型,将 ordering = ['pts', 'gd']
添加到统计模型,但没有成功。
尝试以下操作:
class Team(models.Model):
team_name = models.CharField(max_length=50)
stats = models.ForeignKey(Stats)
class Meta:
ordering = ['stats__pts', 'stats__gd']