기본 필드 값을 설정하는 데 문제가 있습니다. 내가 뭘하고 싶어?
클래스 클래스의 해당 가격을 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' 클래스에서 쿼리하면됩니다. 중복 변수가 적습니다. –