Ich versuche, das neueste Django-Modellobjekt zu erhalten, kann aber anscheinend nicht erfolgreich sein.
Beides funktioniert nicht:
obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)
python
django
django-models
django-queryset
Doniyor
quelle
quelle
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]
NewsPostImage.objects.filter(newsPostTarget=img_id).first()
. Ich hoffe es hilft.Antworten:
quelle
Siehe die Dokumente von django: https://docs.djangoproject.com/de/dev/ref/models/querysets/#latest
Sie müssen ein Feld in latest () angeben. z.B.
Oder wenn die Meta Ihres Modells get_latest_by angibt, können Sie das
field_name
Argument auf weglassenearliest() or latest()
. Django verwendet dasget_latest_by
standardmäßig angegebene Feld .quelle
last () latest ()
Usign last ():
using latest ():
quelle
latest
ist wirklich für die Arbeit mit Datumsfeldern konzipiert (es funktioniert wahrscheinlich auch mit anderen Typen mit Gesamtreihenfolge, ist sich aber nicht sicher). Sie können es nur verwenden, ohne den Feldnamen anzugebenget_latest_by
, indem Sie das hier erwähnte Metaattribut festlegen .quelle
Model.objects.latest('id')
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]
ist die richtige Lösungquelle