我在设置默认字段值时遇到问题。我想做什么?
我希望 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/