Django .latest()值

时间:2018-09-24 18:34:17

标签: python django django-models orm django-queryset

我正在为项目使用django。我有一个模型(表),其中通过运行进程来填充数据。每个过程都有三个步骤,所以所有七个步骤都是表中的七行。下面是示例表:

RunId   Process   ID

403     step1     1
403     step2     2
403     step3     3

404     step1     4
404     step2     5
404     step3     7

每个进程都有一个RunId,这对于每个进程都是唯一的。在前端,我有一张表,该表显示当前正在运行的流程以及该流程所在的当前步骤。

要获得当前步骤,我使用了以下django代码:

RunIds = [403,404]
model.objects.filter(RunId__in = RunIds).latest()

给出每个进程的最后一行(即上表中的第3步)。但是当我想查看对象的值时,我运行了以下命令:

model.objects.filter(RunId__in = RunIds).latest().values()

Django显示了一个错误,指出values()不是model的属性,因为.latest()没有提供queryset。问题是,我无法将该对象中的数据转换为字典,因此我可以使用dict.update()将其他值和字典更新为字典。

1 个答案:

答案 0 :(得分:6)

.latest()返回实际对象,而不是queryset。

因此,您尝试在模型对象上调用它没有的值。

交换订单:

model.objects.filter(RunId__in = RunIds).values().latest()