переместить и скопировать данные таблицы в другие данные таблицы - PullRequest
0 голосов
/ 19 октября 2018

У нас есть 3 таблицы (модели) A, B и c.Table «A» содержат данные, если мы удаляем конкретные данные таблицы «A», то эти удаленные данные я хочу сохранить в таблице «B» автоматически, и еслимы добавили данные в таблицу «C», мы хотим, чтобы данные также добавлялись в таблицу «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)

Пожалуйста, помогите мне.Спасибо

1 Ответ

0 голосов
/ 19 октября 2018

Вы можете переопределить метод delete для Stock и переопределить метод save для Purchase следующим образом:

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()
...