我有一个我想复制的对象(有很多属性)的实例。 我使用deepcopy()复制它然后修改几个属性。
然后我使用Python / PeeWee save()将我的新对象保存到数据库中,但save()实际上更新了原始对象(我认为这是因为id是从原始对象复制的。)
(顺便说一下,对象模型中没有定义主键)
如何强制保存新对象?我能改变它的身份吗?
感谢。
答案 0 :(得分:0)
事实证明我可以将id设置为None(obj.id = None),这将在执行save()时创建一条新记录。
答案 1 :(得分:0)
如果您使用sqlite,则将id设置为None(obj.id = None),否则使用:
data = obj.__dict__['_data']
data.pop('id')
obj.insert(data).execute()