Estoy tratando de obtener el último objeto de modelo de Django pero parece que no puedo tener éxito.
Ninguno de estos funciona:
obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)
python
django
django-models
django-queryset
donante
fuente
fuente
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]
NewsPostImage.objects.filter(newsPostTarget=img_id).first()
. Espero eso ayude.Respuestas:
obj= Model.objects.filter(testfield=12).order_by('-id')[0]
fuente
Vea los documentos de django: https://docs.djangoproject.com/en/dev/ref/models/querysets/#latest
Debe especificar un campo en latest (). p.ej.
obj= Model.objects.filter(testfield=12).latest('testfield')
O si el Meta de su modelo especifica get_latest_by, puede dejar el
field_name
argumento aearliest() or latest()
. Django usará el campo especificado enget_latest_by
por defecto.fuente
último () último ()
Utilice el último ():
usando latest ():
ModelName.objects.latest('id')
fuente
latest
está realmente diseñado para trabajar con campos de fecha (probablemente también funcione con otros tipos de orden total, pero no estoy seguro). Y la única forma en que puede usarlo sin especificar el nombre del campo es configurando elget_latest_by
meta atributo, como se menciona aquí .fuente
Model.objects.latest('id')
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]
es la solucion correctafuente