如何在Django中通过特定的ForeignKey订购?

时间:2019-03-02 00:14:46

标签: django python-3.x django-models foreign-keys

这是该问题的后续版本:How to store a variable history in django?

为简化我的问题,假设我有一个简单的Gamer可以跟踪用户设置和数据,还有一个特定的UserScore模型可以跟踪(time, score)的元组。

class GamerExperience(BasicModelProperties):
    gamer = models.ForeignKey('Gamer', on_delete=models.CASCADE, related_name='experience_history')
    time = models.DateTimeField()
    experience = models.BigIntegerField()

我想按最高(最新分数)对数据库中的每个Gamer进行排序。请注意,我的Gamer模型具有使用self.experience_history.order_by("-time").first().experience

返回最新分数的属性

但是,使用sorted确实很慢,我敢肯定还有另一种方法可以实现:)

1 个答案:

答案 0 :(得分:0)

您尝试过Meta类吗?

class GamerExperience(BasicModelProperties):
    gamer = models.ForeignKey('Gamer', on_delete=models.CASCADE, related_name='experience_history')
    time = models.DateTimeField()
    experience = models.BigIntegerField()
    class Meta:
        ordering = ['-gamer.score']