У меня есть дата и некоторая долларовая модель брутто:
class FirstDate(models.Model):
gross = models.DecimalField(max_digits=12, decimal_places=2, default=0)
updated = models.DateTimeField(auto_now=True)
class SecondDate(models.Model):
gross = models.DecimalField(max_digits=12, decimal_places=2, default=0)
updated = models.DateTimeField(auto_now=True)
И я хочу отсортировать ее по gross
, а если gross
- то же самое, то отсортировать по updated
поле
Например,
qs1 = SoloDate.objects.all()[:2]
qs2 = GroupDate.objects.all()[:2]
result_list = sorted(
chain(qs1, qs2),
key=lambda x: x.gross # and if gross is the same, for the gross same objects, x.updated and then update was also the same, x.pk,
reverse=True
)
Я имею в виду, позвольте мне сказать, что есть два объекта по отдельности от qs1 и qs2.
# objects from qs1
qs1_obj1 = {
'pk': 1,
'gross': 5,
'updated': 2018-11-24 10:53:23.360707+00:00
}
qs1_obj2 = {
'pk': 2,
'gross': 5,
'updated': 2018-11-25 10:53:23.360707+00:00
}
# objects from qs2
qs2_obj1 = {
'pk': 3,
'gross': 5,
'updated': 2018-11-24 10:53:23.360707+00:00
}
qs2_obj2 = {
'pk': 4,
'gross': 1,
'updated': 2018-11-23 10:53:23.360707+00:00
}
Это result_list
порядок будет qs1_obj1
, qs2_obj1
, qs1_obj2
, qs_2_obj_2
.
Причины:
qs1_obj1
: 1, брутто, 2, обновлено, 3, ПК,
qs2_obj1
: 1. по брутто, 2. по обновлению, 3. но pk не был хорош,
qs1_obj2
: 1. по брутто, 2.но по dpdated было поздно,
qs2_obj2
: 1. брутто было мало.
Возможно, это не хороший вопрос или надоедливый вопрос, мне нужна помощь.
Вопросная строка такова:
key=lambda x: x.gross # and if gross is the same, for the same gross objects, x.updated and then update was also the same, x.pk,
Как я могу это сделать?