我有一个问题来设置默认字段值。我想做的事?
我希望类包中的价格是类Bill中的priceNoTax的默认值。正如你所看到的,所有三个类都是逻辑连接的 。
例如:帐户1有一个ID为1的包。此包的价格为100.帐户1的priceNoTax的默认值为100.
如何做到这一点?我在这方面相对较新,所以我需要帮助。
Django - 默认字段值取决于其他字段值
models.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
非常感谢!
你如何将信息导入模型?您是使用管理页面还是从其他位置传入?我可以通过几种方式来做到这一点,但没有一种方法专门将默认属性设置为来自其他模型的值。 –
您不需要'priceNoTax'和'priceTax'字段,因为它们*已经逻辑连接*。如果您想以“Bill.objects.filter(idAccount__idPackage__price)”的价格访问您可以从“Bill”类查询。少重复的变量。 –