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?