2017-07-25 137 views
1

假设我有如下三个模型;如何通过其外键字段来订购相关字段?

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']添加到统计模型,但它不起作用。

回答

0

尝试以下操作:

class Team(models.Model): 
    team_name = models.CharField(max_length=50) 
    stats = models.ForeignKey(Stats) 

    class Meta: 
     ordering = ['stats__pts', 'stats__gd'] 
+0

是啊,这工作,我只需添加一个“ - ”号的降序感谢youu – cano

相关问题