Я создаю модель тележки со следующим кодом.
from django.db import models
class Item(models.Model):
name = models.CharField(max_length=200)
price = models.DecimalField(max_digits=8, decimal_places=2)
def __str__(self):
return self.name
class Order(models.Model):
date = models.DateTimeField(auto_now_add=True)
transcation_id = models.CharField(max_length=200, null=True)
def __str__(self):
return str(self.date)
class OrderItem(models.Model):
item = models.ForeignKey(Item, on_delete=models.CASCADE, blank=True, null=True)
order = models.ForeignKey(Order, on_delete=models.CASCADE, blank=True, null=True)
quantity = models.IntegerField(default=0, blank=True, null=True)
Связь «многие к одному» между Item
и Order
позволяет одному Order
содержать множество Item
и это выглядит нормально.
Экземпляр модели можно просто клонировать, как уже был дан ответ в этом вопросе .
Моя проблема в том, что price
из Item
изменено. Цена содержащихся в Заказе товаров также изменится. Но я не хочу его менять. В случае, если покупатель уже совершил покупку, цена не может быть изменена. Есть ли способ клонировать экземпляр Order
, который полностью не связан с другой моделью?