Как сделать заказ по конкретному ForeignKey в django? - PullRequest
0 голосов
/ 02 марта 2019

Это своего рода продолжение этого вопроса: Как сохранить историю переменных в django?

Чтобы упростить мою проблему, скажем, у меня есть простой геймер, который отслеживает пользователейнастройки и данные, а также конкретная модель 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 есть свойство, которое возвращает последнюю оценку, используя self.experience_history.order_by("-time").first().experience

Однако использование сортировки очень медленное, и я уверен, что есть другой способ добиться этого:)

1 Ответ

0 голосов
/ 02 марта 2019

Вы пробовали с классом 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']
...