我有一个问题,需要设置默认字段值。我想做什么?我希望类“Packages”中的价格成为类“Bill”中“priceNoTax”的默认值。正如您所看到的,这三个类是逻辑上相互连接的。
示例:账户1拥有ID为1的套餐。该套餐的价格为100美元。账户1的“priceNoTax”默认值为100美元。
如何做到?由于我是相对较新的人,因此需要帮助。
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
类中查询,例如:Bill.objects.filter(idAccount__idPackage__price)
。这样可以减少重复变量的使用。 - Lord Salforis