1

我希望能够使用版本将对象存储在我的数据库中。因此,每当对象发生更改时,都会创建一个具有更高版本的新对象。这允许来自其他模型的对象仍然使用旧版本的对象。

我不想对我的模型进行版本控制,而是对我的对象进行版本控制。

示例:假设对于网上商店,一种型号是商品,另一种型号是订单。如果某个客户下订单,他当然想购买他在下订单时看到的商品。但是,如果商品价格发生变化,这不应该对已经下的订单有任何影响,而只会影响未来的订单。

4

2 回答 2

1

我认为这不是网上商店示例的实用解决方案,因为您只需要某些数据保持冻结状态,并且通常将名称、SKU 和价格复制到订购的商品模型更实用。您很可能不需要冻结库存水平、详细描述或图像等内容。

但是,由于您一般都在问,您可能想看看:

http://www.djangopackages.com/grids/g/versioning/

于 2012-11-25T16:55:24.727 回答
0

基本上,如果您想在每次调用时创建新对象save,只需清除它的 pk。

class PersistentModel(models.Model) 
   def save(self):
        if self.pk is not None:
            self.pk = None
        return super(PersistentModel, self).save()
于 2012-11-25T16:58:46.357 回答