1

オブジェクトをバージョンとともにデータベースに保存できるようにしたいと考えています。そのため、オブジェクトが変更されるたびに、新しいオブジェクトが新しいバージョンで作成されます。これにより、他のモデルのオブジェクトが古いバージョンのオブジェクトを引き続き使用できるようになります。

モデルのバージョン管理ではなく、オブジェクトのバージョン管理が必要です。

例: ウェブショップの場合、1 つのモデルがアイテムで、もう 1 つのモデルが注文であるとします。顧客が注文した場合、もちろん、注文時に見た商品を正確に購入したいと考えています。ただし、アイテムの価格が変更された場合、これはすでに行われた注文には影響せず、将来の注文にのみ影響します。

4

2 に答える 2

1

特定のデータを凍結したままにしておく必要があるだけであり、一般的には名前、SKU、価格を注文アイテム モデルにコピーする方がより実用的であるため、Web ショップの例に対する実用的な解決策になるとは思いません。在庫レベル、詳細な説明、画像などを凍結する必要はほとんどありません。

ただし、一般的に尋ねているので、次のことを確認してください。

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 に答える