【发布时间】:2013-04-15 12:25:50
【问题描述】:
我需要为特定模型查询一组对象,更改单个属性/列(“帐户”),然后将整个查询集的对象保存为新对象/行。换句话说,我想复制对象,并在副本上更改一个属性(“帐户”)。我基本上是在创建一个新帐户,然后遍历每个模型并将先前帐户的对象复制到新帐户,因此我将使用不同的模型重复执行此操作,可能使用 django shell。我应该如何处理这个?可以在查询集级别完成还是我需要遍历所有对象?
即,
MyModel.objects.filter(account="acct_1")
# Now I need to set account = "acct_2" for the entire queryset,
# and save as new rows in the database
【问题讨论】:
-
我想我很困惑。是否要复制对象并为其设置新帐户?
-
是的。抱歉,我会尝试改写它以使其更清楚。
-
可以批量更新,也可以批量插入,但不能批量更新和单行新建。您必须遍历查询集。
-
谢谢,@JoshSmeaton。看起来 bozdoz 的答案是要走的路。