避免更改FK表Django Models 1.11

时间:2017-11-13 17:53:59

标签: mysql django django-models foreign-keys

这是我模拟购物车的方式。 我有一张产品表,一个"临时"订单完成后删除的购物车。还有我的CompleteOrders列表,其中包含用户每个订单的数据。 问题是,当我修改产品的价格或名称时,它也会在CompleteOrders列表中更改。有没有办法避免这种情况?

class Product(models.Model):
    name = models.CharField(max_length=30)
    price = models.IntegerField()

class Cart(models.Model):
    product = models.ForeignKey(Product)

class CompleteOrders(models.Model):
    product = models.ForeignKey(Product)

我的方法是在CompleteOrder中存储产品的信息,而不是使用FK,但我没有看到非常优化。

提前致谢。

1 个答案:

答案 0 :(得分:0)

外键是指另一个表,它将始终显示当前数据。你无法避免这种情况。除了在订单完成时存储产品数据,别无他法。

我通常使用JSON数据类型来存储此类信息。