有没有更有效的方法来做到这一点?
for item in item_list:
e, new = Entry.objects.get_or_create(
field1 = item.field1,
field2 = item.field2,
)
发布于 2010-02-13 03:13:54
您不能使用get_or_create (甚至是create)进行像样的批量插入,而且也没有可以轻松做到这一点的应用编程接口。
如果您的表足够简单,使用原始SQL创建行并不是一件很麻烦的事情,那么它就不会太难;例如:
INSERT INTO site_entry (field1, field2)
(
SELECT i.field1, i.field2
FROM (VALUES %s) AS i(field1, field2)
LEFT JOIN site_entry as existing
ON (existing.field1 = i.field1 AND existing.field2 = i.field2)
WHERE existing.id IS NULL
)
其中%s是一个类似于("field1, field2"), ("field3, field4"), ("field5, field6")
的字符串,您必须自己创建并正确转义。
发布于 2010-02-12 22:48:23
这取决于你的目标是什么。您可以使用manage.py
的loaddata
函数以适当的格式(JSON、XML、YAML等)加载数据。
另请参见this discussion。
发布于 2013-03-09 19:44:02
https://stackoverflow.com/questions/2252530
复制相似问题