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)
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)
NewsPostImage.objects.filter(newsPostTarget=img_id).first()
. Ich hoffe es hilft.
Antworten:
obj= Model.objects.filter(testfield=12).order_by('-id')[0]
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.
obj= Model.objects.filter(testfield=12).latest('testfield')
Oder wenn die Meta Ihres Modells get_latest_by angibt, können Sie das field_name
Argument auf weglassen earliest() or latest()
. Django verwendet das get_latest_by
standardmäßig angegebene Feld .
Model.objects.latest('id')
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]
ist die richtige Lösung
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]