Ich habe ein Problem, einen Standardfeldwert festzulegen. Was ich machen will; was ich vorhabe zu tun?
Ich möchte diesen Preis in der Klasse Packages ein Standardwert von priceNoTax in der Klasse Bill sein. Wie Sie sehen können, sind alle drei Klassen logisch verbunden.
Beispiel: Konto 1 hat ein Paket mit der ID 1. Der Preis dieses Pakets ist 100. Der Standardwert von priceNoTax für Konto 1 ist 100.
Wie geht das? Ich bin relativ neu darin, also brauche ich Hilfe.
Django - Standardfeldwert hängt von anderem Feldwert ab
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
Vielen Dank !!!
Wie erhalten Sie die Informationen in das Modell? Verwenden Sie eine Admin-Seite oder geben Sie sie von einem anderen Ort aus ein? Es gibt mehrere Möglichkeiten, dies zu tun, aber keine, die das Standardattribut speziell auf den Wert eines anderen Modells setzen. –
Sie brauchen die Felder 'priceNoTax' und' priceTax' nicht für mich, da sie * logisch bereits verbunden sind *. Sie können einfach von der 'Bill'-Klasse abfragen, wenn Sie als' Bill.objects.filter (idAccount__idPackage__price) 'auf Preise zugreifen möchten. Weniger doppelte Variablen –