Consulta do Django usando .order_by () e .latest ()
Eu tenho um modelo:
class MyModel(models.Model):
creation_date = models.DateTimeField(auto_now_add = True, editable=False)
class Meta:
get_latest_by = 'creation_date'
Eu tinha uma consulta na minha opinião que fazia o seguinte:
instances = MyModel.objects.all().order_by('creation_date')
E depois eu queriainstances.latest()
, mas não me deu a instância correta, na verdade, me deu a primeira instância. Somente quando defino order_by como-creation_date
ou realmente removeu o order_by da consulta.latest()
me dê a instância correta. Isso também acontece quando eu testo isso manualmente usando o shell python manage.py, em vez de na exibição.
Então, o que eu fiz agora é no Meta do modelo que eu listeiorder_by = ['creation_date']
e não usado isso na consulta, e que funciona.
Eu teria esperado.latest()
para sempre retornar a instância mais recente com base em um campo (data) (hora). Alguém poderia me dizer se é correto que.latest()
se comporta estranhamente quando você usaorder_by
na consulta?