Django .latest()值

Sri*_*sha 2 python django orm django-models django-queryset

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

RunId   Process   ID

403     step1     1
403     step2     2
403     step3     3

404     step1     4
404     step2     5
404     step3     7
Run Code Online (Sandbox Code Playgroud)

每个流程都有一个RunId独特的流程.在前端,我有一个表格,显示当前正在运行的流程以及流程的当前步骤.

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

RunIds = [403,404]
model.objects.filter(RunId__in = RunIds).latest()
Run Code Online (Sandbox Code Playgroud)

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

model.objects.filter(RunId__in = RunIds).latest().values()
Run Code Online (Sandbox Code Playgroud)

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

Ent*_*tin 6

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

因此,您尝试在模型对象上调用值,而不是它.

交换订单:

model.objects.filter(RunId__in = RunIds).values().latest()
Run Code Online (Sandbox Code Playgroud)