Mam problem z ustawieniem domyślnej wartości pola. Co chcę robić?
Chcę tej ceny w klasie Pakiety to domyślna wartość priceNoTax w klasie Bill. Jak widać, wszystkie trzy klasy są logicznie połączone.
Przykład: Konto 1 ma pakiet o id 1. Cena tego pakietu wynosi 100. Domyślna wartość cenyNoTax dla Konta 1 to 100.
Jak to zrobić? Jestem na tym względnie nowy, więc potrzebuję pomocy.
Django - domyślna wartość pola zależy od innej wartości pola
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
dziękuję !!!
W jaki sposób otrzymujesz informacje do modelu? Czy używasz strony administratora lub przekazujesz ją z innej lokalizacji? Sądzę, że można to zrobić na kilka sposobów, ale żaden z nich nie ustawił domyślnie atrybutu wartości z innego modelu. –
Nie potrzebujesz pól 'priceNoTax' i' priceTax' dla mnie, ponieważ są * logicznie połączone już *. Możesz po prostu zapytać z klasy 'Bill', jeśli chcesz uzyskać dostęp do cen jako' Bill.objects.filter (idAccount__idPackage__price) '. Mniej zduplikowanych zmiennych. –