一尘不染

使用Django中的过滤器获取最新记录

django

我正在尝试获取最新的Django模型对象,但似乎无法成功。

这些都不起作用:

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

阅读 438

收藏
2020-04-02

共2个答案

一尘不染

obj= Model.objects.filter(testfield=12).order_by('-id')[0]
2020-04-02
一尘不染

请参阅Django的文档:https : //docs.djangoproject.com/en/dev/ref/models/querysets/#latest

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

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

或者,如果你模型的Meta指定了get_latest_by,则可以忽略field_name参数earliest() or latest()Django get_latest_by默认会使用中指定的字段。

2020-04-02