2017-07-25 92 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

相關問題