Использование атрибута внешнего ключа в качестве поля в модели - PullRequest
0 голосов
/ 01 марта 2020

Допустим, у меня есть это в виде кода

class Transaction(models.Model):
    item = models.ForeignKey(Item,on_delete=models.PROTECT)
    total_transaction = get_price()
    coupon = models.ForeignKey(Coupon,on_delete=models.PROTECT)

    def get_price(self):
        return self.item.price * self.coupon.percentage // 100

Я хочу использовать процент купона и цену предмета, чтобы вставить в total_transaction, но я не могу передать функцию как это говорит "я" обязательно? Как мне обойти это?

1 Ответ

1 голос
/ 01 марта 2020

Вам необходимо объявить total_transaction как свойство:

class Transaction(models.Model):
    item = models.ForeignKey(Item,on_delete=models.PROTECT)
    coupon = models.ForeignKey(Coupon,on_delete=models.PROTECT)

    @property
    def total_transaction(self):
        return self.item.price * self.coupon.percentage // 100

Примечание: свойства не сохраняются в БД

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