Methode in Modell übergeben DJANGO
Verfasst: Donnerstag 23. September 2010, 10:13
Hallo liebe Experten,
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
Ich hoffe ihr könnt mir weiterhelfen!
lg thoto
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