python - Django - 默认字段值取决于其他字段值

标签 python django default-value


我在设置默认字段值时遇到问题。我想做什么?
我希望 Packages 类中的价格是 Bill 类中 priceNoTax 的默认值。如您所见,所有三个类都是 逻辑上连接。
示例:账户 1 有一个包裹 ID 为 1。这个包裹的价格是 100。账户 1 的 priceNoTax 的默认值为 100。

如何做到这一点?我在这方面比较陌生,所以我需要帮助。

模型.py

class Packages(models.Model):
     #other fields
     price = models.IntegerField(validators=[MinValueValidator(1)], verbose_name="Price of package")

class Account(models.Model):
     startDate = models.DateField(verbose_name="Start date")
     finishDate = models.DateField(verbose_name="Finish date")
     idPackage = models.ForeignKey(Packages, on_delete=models.CASCADE, verbose_name="Package")

class Bill(models.Model):
     date = models.DateField(default=datetime.now())
     tax = models.FloatField(default=0.20)
     priceNoTax = models.IntegerField()
     priceTax = models.FloatField(default=priceNoTax+(priceNoTax*tax))
     idAccount = models.ForeignKey(Account, on_delete=models.CASCADE, verbose_name="Account")

     def __str__(self):
         return self.date

非常感谢!!!

最佳答案

或许将它添加到您的 Bill 类中?

def save(self, *args, **kwargs):
    if self.priceNoTax is None:
        self.priceNoTax = self.idAccount.idPackage.price
    super(Bill, self).save(*args, **kwargs)

关于python - Django - 默认字段值取决于其他字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39066086/

相关文章:

json - 类型错误 : <object> is not JSON serializable

c++ - 如何初始化具有默认值的类的函数参数

python - Django 1.8 : Join latest entry to foreign key

python - 通过艺术家更新 matplotlib 中的文本

python - 日志文件解析python

python - Numpy "orthogonal"广播

python - Django 表单小部件渲染

javascript - 在 Javascript 中设置属性的默认值

c++ - 如何通过未定义类型定义元函数?

python - 在 Python 中循环遍历数字