将 table 数据移动并复制到另一个 table 数据

move and copy table data to another table data

我们有3个tables(models)A,B和c.Table'A'有数据,如果我们删除[=17=的具体table数据] 然后删除的数据我想自动保存在 table 'B' 和 如果我们在 table 'C' 中添加数据,我们希望数据也自动添加到 table 'A' 中。

from django.db import models

class Stock(models.Model):

    product_name = models.CharField(max_length=100,blank=False)
    quantity = models.IntegerField()
    price = models.FloatField()
    status = models.CharField(max_length=10, default='AVAILABLE')

    def __str__(self):
        return 'Product name:{0} Quantity:{1} Price:{2} Status:{3} '.format(self.product_name, self.quantity, self.price, self.status)
class Sale(models.Model):

    product_name = models.CharField(max_length=100, blank=False)
    quantity = models.IntegerField()
    price = models.FloatField()
    status = models.CharField(max_length=10, default='SOLD')

    def __str__(self):
        return 'Product name:{0} Quantity:{1} Price:{2} Status:{3}'.format(self.product_name, self.quantity, self.price, self.status)
class Purchase(models.Model):

    product_name = models.CharField(max_length=100,blank=False)
    quantity = models.IntegerField()
    price = models.FloatField()
    status = models.CharField(max_length=10,default='Purchased')

    def __str__(self):
        return 'Product name:{0} Quantity:{1} Price:{2} Status:{3}'.format(self.product_name,self.quantity, self.price, self.status)

请帮帮我。 谢谢

您可以重写 Stockdelete 方法并重写 Purchasesave 方法,如下所示:

class Stock(models.Model):

    product_name = models.CharField(max_length=100,blank=False)
    quantity = models.IntegerField()
    price = models.FloatField()
    status = models.CharField(max_length=10, default='AVAILABLE')

    def delete(self):
        Sale.objects.create(product_name=self.product_name, quantity=self.quantity, price=self.price, status=self.status)
        super().delete()

class Purchase(models.Model):

    product_name = models.CharField(max_length=100,blank=False)
    quantity = models.IntegerField()
    price = models.FloatField()
    status = models.CharField(max_length=10,default='Purchased')

    def save(self):
        if not self.pk:
            Stock.objects.create(product_name=self.product_name, quantity=self.quantity, price=self.price, status=self.status)
        super().save()