【问题标题】: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)