【发布时间】:2011-01-27 04:53:01
【问题描述】:
我有一个带有版本字段的模型 - 自动创建时间戳。 保存模型实例时,我想创建一个具有新时间戳的新实例,而不是更新旧模型实例。
有可能吗?
我想过重写模型的 save() 方法,但我不知道如何在不创建无限 save() 循环的情况下创建新实例。
谢谢
【问题讨论】:
我有一个带有版本字段的模型 - 自动创建时间戳。 保存模型实例时,我想创建一个具有新时间戳的新实例,而不是更新旧模型实例。
有可能吗?
我想过重写模型的 save() 方法,但我不知道如何在不创建无限 save() 循环的情况下创建新实例。
谢谢
【问题讨论】:
您可以在覆盖的save 方法中设置self.id = None - 然后在超级方法中,Django 将执行插入而不是更新。
或者,正如文档 here 中所指出的,您可以在对 save 的调用中使用 force_insert=True 参数,它的作用相同。
【讨论】: