ich habe folgendes Problem:
Ich möchte eine Methode in meinem Modell schreiben, inder eine Preisberechnung der restlichen Modells durchgeführt wird!
Kurze Erläuterung wie das ganze aussieht:
Das Komplettsystem-Modell setzt sich aus mehreren anderen Modell zusammen, welche alle einen Preis besitzen.
Der Komplettsystem-Preis soll sich also aus den anderen Moddelpreisen zusammensetzen.
Ich habe es schon mit einem Manager probiert, jedoch bekomm ich das ganze nicht zum laufen.
models.py
Code: Alles auswählen
class Celsius(models.Model):
name = models.CharField(max_length = 200)
price = models.IntegerField()
def __unicode__(self):
return self.name
class CPU(models.Model):
name = models.CharField(max_length = 200)
cpufsb = models.IntegerField()
cpughz = models.DecimalField(max_digits=4, decimal_places=2)
cpukerne = models.IntegerField()
price = models.IntegerField()
def __unicode__(self):
return self.name
class Grafikkarte(models.Model):
name = models.CharField(max_length = 200)
grafikspeicher = models.IntegerField()
price = models.IntegerField()
def __unicode__(self):
return self.name
class RAM(models.Model):
name = models.CharField(max_length = 200)
ramspeicher = models.IntegerField()
anzahlspeicher = models.IntegerField()
price = models.IntegerField()
def __unicode__(self):
return self.name
class Software(models.Model):
name = models.CharField(max_length = 200)
price = models.IntegerField()
def __unicode__(self):
return self.name
class Hardware(models.Model):
name = models.CharField(max_length = 200)
anzahlkomponenten = models.IntegerField()
price = models.IntegerField()
def __unicode__(self):
return self.name
class Benchmark(models.Model):
name = models.CharField(max_length = 200)
ergebnis = models.DecimalField(max_digits=5, decimal_places=2)
def __unicode__(self):
return self.name
class KomplettPreisManager(models.Manager):
def get_query_set(self):
row = self.model.all()
for i in row:
preis = i.celsius.price + i.cpu.price + i.grafikkarte.price + i.ram.price + i.software.price + i.hardware.price
return preis
class Komplettsystem(models.Model):
name = models.CharField(max_length = 200)
pub_date = models.DateTimeField('date published')
benchmark = models.ForeignKey(Benchmark)
celsius = models.ForeignKey(Celsius)
cpu = models.ForeignKey(CPU)
grafikkarte = models.ForeignKey(Grafikkarte)
ram = models.ForeignKey(RAM)
software = models.ForeignKey(Software)
hardware = models.ForeignKey(Hardware)
erg = KomplettPreisManager()
def __unicode__(self):
return self.name
lg thoto