django – 用filter获取最新的logging

我想获得最新的Django模型对象,但似乎无法成功。

也不

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

也不

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

工作中。

请帮忙。

 obj= Model.objects.filter(testfield=12).order_by('-id')[0] 

查看django的文档: https : //docs.djangoproject.com/en/dev/ref/models/querysets/#latest

您需要在latest()中指定一个字段。 例如。

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

或者,如果您的模型的元指定了get_latest_by,则可以将field_name参数设置为earliest() or latest() 。 Django将默认使用get_latest_by指定的字段。

latest的devise是为了与date字段一起工作(它可能也适用于其他全序types,但不确定)。 只有在不指定字段名的情况下才能使用它,只需设置get_latest_by元属性即可,如此处所述。

obj= Model.objects.filter(testfield=12).order_by('-id')[:1]是正确的解决scheme

Usign last():

 ModelName.objects.last() 

使用最新():

 ModelName.objects.lastest('id')