У меня есть модель:
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')
И потом мне захотелось instances.latest()
, но это не дало бы мне правильный экземпляр, на самом деле это дало мне первый экземпляр. Только когда я установил order_by в -creation_date
или фактически удалил order_by из запроса, .latest()
дайте мне правильный экземпляр. Это также происходит, когда я проверяю это вручную, используя оболочку python manage.py вместо представления.
Итак, что я сделал сейчас, в Model Meta я перечислил order_by = ['creation_date']
и не использовал это в запросе, и это работает.
Я бы ожидал, что .latest()
всегда будет возвращать самый последний экземпляр, основанный на поле (дата) (время). Может ли кто-нибудь сказать мне, исправляет ли это, что .latest()
ведет себя странно, когда вы используете order_by
в запросе?