Django Query using .order_by () und .latest ()

Ich habe ein Modell:

class MyModel(models.Model):
   creation_date = models.DateTimeField(auto_now_add = True, editable=False)

   class Meta:
      get_latest_by = 'creation_date'

ch hatte aus meiner Sicht eine Abfrage, die Folgendes ergab:

instances = MyModel.objects.all().order_by('creation_date')

Und dann später wollte ichinstances.latest(), aber es würde mir nicht die richtige Instanz geben, in der Tat gab es mir die erste Instanz. Nur wenn ich order_by auf @ set-creation_date oder tatsächlich entfernt die order_by aus der Abfrage.latest() gib mir die richtige Instanz. Dies passiert auch, wenn ich dies manuell mit der python manage.py-Shell anstelle der Ansicht teste.

So was ich jetzt getan habe ist in der Meta des Models, die ich aufgelistet habeorder_by = ['creation_date'] und nicht in der Abfrage verwendet, und das funktioniert.

Ich hätte erwartet.latest(), um immer die aktuellste Instanz basierend auf einem (Datum) (Uhrzeit) -Feld zurückzugeben. Könnte mir jemand sagen, ob es richtig ist, dass.latest() verhält sich seltsam, wenn Sie @ verwendorder_by in der Abfrage?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage