У меня есть модель:
class MyModel(models.Model):
creation_date = models.DateTimeField(auto_now_add = True, editable=False)
class Meta:
get_latest_by = 'creation_date'
В моем представлении был запрос, который выполнял следующие действия:
instances = MyModel.objects.all().order_by('creation_date')
А потом я захотел instance.latest ()
, но он не дал мне правильный экземпляр, на самом деле он дал мне первый экземпляр. Только когда я установил order_by в -creation_date
или фактически удалил order_by из запроса, .latest ()
дал мне правильный экземпляр. Это также происходит, когда я тестирую это вручную, используя оболочку python manage.py вместо представления.
Итак, то, что я сделал сейчас, находится в мете модели, которую я указал order_by = ['creation_date']
и не использовал его в запросе, и это работает.
Я ожидал, что .latest ()
всегда будет возвращать самый последний экземпляр на основе поля (дата) (время). Может ли кто-нибудь сказать мне, правильно ли, что .latest ()
ведет себя странно, когда вы используете order_by
в запросе?