Как упорядочить объекты Django по атрибутам их внешних ключей?

#python #django #django-models

#python #django #django-модели

Вопрос:

У меня есть следующий код:

 from django.db import Models

class Model1(models.Model):
    #Attributes...


class Model2(models.Model):
    model1_foreign_key = models.ForeignKey(Model1, related_name='some_name', on_delete=models.CASCADE)
    created = models.DateTimeField(auto_now_add=True)
  

Моя цель — упорядочить первый элемент по последнему созданию их внешних ключей. Например:

 Today is September eighth
Model A is an instance of Model1 and has two models related to it via the foreign key, model B (created on September 5th) and model C (created on September 6th). Assume times don't matter here.
Model D is an instance of Model1 and has another two models related to it via a foreign key, E and F (Created on September 5th and 7th respectively).
  

Предоставляется доступ к списку объектов Model1, таких как Model1.objects .все, как я могу упорядочить модели таким образом, чтобы модель D была первой (у нее есть последний объект Model2, созданный 7 сентября).
В качестве альтернативы, что я могу изменить для достижения того же результата?

Ответ №1:

Вы можете использовать что-то вроде этого:

 Model1.objects.all().order_by('-model2__created')
  

В этом коде model2 есть related_query_name of model1_foreign_key , который по умолчанию является именем класса.