Get the latest record with filter in Django

doniyor picture doniyor · Mar 28, 2013 · Viewed 109.4k times · Source

I am trying to get the latest Django model object but cannot seem to succeed.

Neither of these are working:

obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)

Answer

user3345047 picture user3345047 · Feb 24, 2014

See the docs from django: https://docs.djangoproject.com/en/dev/ref/models/querysets/#latest

You need to specify a field in latest(). eg.

obj= Model.objects.filter(testfield=12).latest('testfield')

Or if your model’s Meta specifies get_latest_by, you can leave off the field_name argument to earliest() or latest(). Django will use the field specified in get_latest_by by default.