我希望能够使用版本将对象存储在我的数据库中。因此,每当对象发生更改时,都会创建一个具有更高版本的新对象。这允许来自其他模型的对象仍然使用旧版本的对象。
我不想对我的模型进行版本控制,而是对我的对象进行版本控制。
示例:假设对于网上商店,一种型号是商品,另一种型号是订单。如果某个客户下订单,他当然想购买他在下订单时看到的商品。但是,如果商品价格发生变化,这不应该对已经下的订单有任何影响,而只会影响未来的订单。
我认为这不是网上商店示例的实用解决方案,因为您只需要某些数据保持冻结状态,并且通常将名称、SKU 和价格复制到订购的商品模型更实用。您很可能不需要冻结库存水平、详细描述或图像等内容。
但是,由于您一般都在问,您可能想看看:
基本上,如果您想在每次调用时创建新对象save
,只需清除它的 pk。
class PersistentModel(models.Model)
def save(self):
if self.pk is not None:
self.pk = None
return super(PersistentModel, self).save()