正确使用 Django 的批量更新追加到列表
Posted
技术标签:
【中文标题】正确使用 Django 的批量更新追加到列表【英文标题】:Using Django's Bulk Update Correctly to Append to List 【发布时间】:2022-01-22 10:30:58 【问题描述】:我在validated_data
中有一个项目的字典列表,我目前更新用户并保存到数据库。
for book in validated_data:
book.user = self.context['request'].user
obj.save()
我想改用 Django 的批量更新。我找到了following example:
我是这样修改的:
for book in validated_data:
book.user = self.context['request'].user
Book.objects.bulk_update(validated_data, update_fields = ['user'])
但是,我不明白这是如何工作的。首先,validated_data
在此示例中从未实际更新。
如何更新validated_data
中的每个项目以包含我的新值?
【问题讨论】:
【参考方案1】:作为,Django bulk_update not working on default attributes,
我认为您正在使用过时的实例,因此您可能需要刷新每个书籍实例。
for book in validated_data:
book..refresh_from_db()
【讨论】:
以上是关于正确使用 Django 的批量更新追加到列表的主要内容,如果未能解决你的问题,请参考以下文章
在 Django Rest Framework 中批量更新数据