【问题标题】:Django .latest() valuesDjango .latest() 值
【发布时间】:2019-02-28 07:44:16
【问题描述】:

我在我的项目中使用 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() 不提供查询集。问题是,我无法将该对象中的数据转换为字典,以便我可以使用dict.update() 将字典更新为其他值和字典。

【问题讨论】:

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


    【解决方案1】:

    .latest() 返回实际对象,而不是查询集。

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

    交换订单:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 2018-09-18
      • 1970-01-01
      • 2020-02-27
      • 2016-08-13
      • 1970-01-01
      相关资源
      最近更新 更多