django - 如何在 Django 中使用 bulk_update 方法保存对象列表?
问题描述
我有一个循环遍历对象并将它们添加到列表中
for note in notes:
old_note = Note(
user_id=note['id']),
author=note['author'],
)
existing_notes.append(old_note)
Worklog.objects.bulk_update(
existing_notes,
[
'user_id',
'author',
],
batch_size=1000)
但它没有像我希望的那样工作。当我在 django 中使用 celery 任务运行我的脚本时,它有点崩溃。请帮助大家,如果有能够表明我的错误。我的最终目标是将我需要的所有对象添加到列表中并立即在数据库中更新它们,因为我有很多数据
解决方案
假设您有一个带有名称字段的模型对象 Book,例如:
在模型中
class Book(models.Model):
name = models.CharField(max_length=200, blank = True)
然后,如果您有创建书籍的名称列表:
book_list = [{"name":"A"},{"name":"B"},{"name":"C"}]
然后您所要做的就是将此列表(字典列表)传递给 Book() 以首先创建 Book 对象列表。然后最后一步是将这些对象保存到数据库使用
Book.objects.bulk_create(list of objects here)
看起来像:
objects = [] #list for Book objects
new_object = [] #list for new object to add to Book objects
for i in booklist: #'booklist' is the list of bookname dictionaries
`new_object = Book(name = i['name']) #book objects with each name in`
booklist
objects.append(new_object) #list of Book objects
#saving list of book objects created in the for loop
Book.objects.bulk_create(objects)
推荐阅读
- security - Jetty 9.4.18 中的 SSL 是否强制使用主题备用名称
- python - 使用 python Openpyxl 在 Excel 表中写入时,数字会自动转换为日期格式
- node.js - 带有共享包的打字稿项目设置
- reactjs - 通过 npm 安装 firebase 时遇到错误 | 解析时 JSON 输入意外结束
- javascript - 编码问题,无法使用 API 元素创建数组,Reactjs
- javascript - 在测试用例中得到一个未定义的值,但在生产中没有
- mongodb - Meteor 网站加载时间过长
- java - 使用 HttpURLConnection 在 Imgur 上抓取帖子
- c - 如何取消引用strlen中的空指针?
- vue.js - Laravel 数据绑定在 vue 模板上