【问题标题】:How can I update the field value of all objects in a queryset in Django?如何在 Django 中更新查询集中所有对象的字段值?
【发布时间】:2020-11-28 09:10:35
【问题描述】:

我想将字段“volume”更新为 volume += change_by。 我想通过'change_by'变量增加查询集中所有对象的该字段的现有值,无论'change_by'变量包含什么。

queryset = QueueStatusModel.objects.all()
queryset.update(volume+=iph_change)

这不起作用。有人可以帮忙吗?

【问题讨论】:

标签: python django django-queryset


【解决方案1】:

对查询集的每个对象使用 for 循环。

queryset = QueueStatusModel.objects.all() 

for q in queryset:
    q.volume += iph_change
    q.save()

注意:对于通过此视图函数的每个请求,这将增加任何 QueueStatusModel 对象的数量

【讨论】:

    【解决方案2】:

    感谢 cmets @iklinac 中的文档链接 从该文档中我可以找到:

    queryset.update(volume=F('volume') + iph_change)
    

    【讨论】:

      猜你喜欢
      • 2016-04-22
      • 2013-07-04
      • 1970-01-01
      • 1970-01-01
      • 2016-08-17
      • 1970-01-01
      • 1970-01-01
      • 2021-09-12
      • 2021-11-14
      相关资源
      最近更新 更多