我想,以获取最新的Django模型对象,但似乎无法成功。
这些都不是工作:
obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)
我想,以获取最新的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
你需要指定一个字段中最新的()。 例如。
obj= Model.objects.filter(testfield=12).latest('testfield')
或者,如果你的模型的元指定get_latest_by,可以去掉的field_name
参数earliest() or latest()
Django会使用在指定的字段get_latest_by
默认。
latest
真的设计与日期字段的工作(可能它与其它总排序的工种过,但不知道)。 你可以使用它没有指定字段名的唯一方法是通过设置get_latest_by
元属性,提到这里 。
最后() 最新的()
Usign最后():
ModelName.objects.last()
使用最新的():
ModelName.objects.latest('id')
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]
是正确的解决方案