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')