我有一個問題來設置默認字段值。我想做的事?
我希望類包中的價格是類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」類查詢。少重複的變量。 –