Упорядочение Django по полю внешнего ключа - PullRequest
1 голос
/ 12 марта 2019

У меня есть две модели, перечисленные ниже:

class Project(models.Model):
    name = models.TexField()

class Item(models.Model):
    project = models.ForeignKey(Project,on_delete=models.CASCADE, related_name='project_item')
    name = models.TextField()
    available = models.FloatField()

Так что мне нужно выбрать все проекты, однако я хочу, чтобы они были такими, чтобы все те проекты, у которых есть элементы с available больше, чем 0, должны идти первыми.

Я пробовал это:

list = Projects.objects.filter(**Some Fields**).order_by(available)

Как мне отсортировать этот список?

1 Ответ

2 голосов
/ 12 марта 2019

Вы можете следить за отношениями в предложениях с двойным подчеркиванием, например:

list = Projects.objects.filter(**Some Fields**).order_by('-item__available')

Упорядочивает проекты в порядке убывания по доступному полю связанных элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...