获取最新纪录在Django过滤器(Get the latest record with filter

2019-08-18 02:43发布

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

这些都不是工作:

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

Answer 1:

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


Answer 2:

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

你需要指定一个字段中最新的()。 例如。

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

或者,如果你的模型的元指定get_latest_by,可以去掉的field_name参数earliest() or latest() Django会使用在指定的字段get_latest_by默认。



Answer 3:

latest真的设计与日期字段的工作(可能它与其它总排序的工种过,但不知道)。 你可以使用它没有指定字段名的唯一方法是通过设置get_latest_by元属性,提到这里 。



Answer 4:

最后() 最新的()

Usign最后():

ModelName.objects.last()

使用最新的():

ModelName.objects.latest('id')


Answer 5:

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



文章来源: Get the latest record with filter in Django