Django: Операции на разных полях двух разных моделей - PullRequest
0 голосов
/ 03 августа 2020

здесь определены два класса, я хотел бы провести некоторые вычисления в разных полях обеих моделей.

class A(models.Model):
    newspaper = models.CharField(max_length=50)
    language = models.CharField(max_length=50, choices=Language)
    wh_price = models.DecimalField(max_digits=6,decimal_places=2)
    sa_price=models.DecimalField(max_digits=6,decimal_places=2)

class B(models.Model):
    added_date = models.DateField(max_length=32,auto_now_add=True)
    newspaper = models.ForeignKey(Newspaper,on_delete=models.CASCADE)
    qty=models.IntegerField(default=0)
    qty_return =models.IntegerField(default=0)
    total = models.DecimalField(max_digits=6,decimal_places=2)

всего (от B) = wh_price (от A) * qty (от B)

1 Ответ

0 голосов
/ 03 августа 2020

вы можете отменить функцию сохранения класса b следующим образом:

class Intake(models.Model):
    # your fields..
    # below is the save function which we are overriding
    save(self, *args, **kwargs):
        self.total = self.newspaper.wh_price * self.qty
        super(Intake, self).save(*args, **kwargs)

это будет служить цели, насколько я понимаю вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...