我需要你对这个应用程序的帮助我在这些模型中,我想要在模型Pizza中自动计算顶部的价格和类型,所以当有人记录新数据时,他可以选择类型和顶部以及价格计算并将其保存在该表中。
class Type(models.Model):
typeName = models.CharField( max_length = 50 )
priceBase = models.DecimalField( max_digits = 6, decimal_places = 0, default=0 )
obsBase = models.CharField( max_length = 200, null=True )
def __str__(self):
return self.typeName
class Topping(models.Model):
nameTopping = models.CharField( max_length = 200)
priceTopping = models.DecimalField( max_digits = 6, decimal_places = 0, default=0 )
obsTopping = models.CharField( max_length = 200, null=True )
def __str__(self):
return self.nameTopping
class Pizza(models.Model):
namePizza = models.CharField(max_length=200)
typePizza = models.ForeignKey(Type, on_delete=models.SET_NULL, null=True )
toppingPizza = models.ForeignKey(Topping, on_delete=models.SET_NULL, null=True)
obsPizza = models.CharField(max_length = 200, null=True)
def __str__(self):
return self.namePizza
伙计们,我可以使用这种逻辑将我的比萨饼保存在数据库中,这样当有人在网上订购比萨饼时我可以检索计算出的数据吗?我是从右脚开始的吗?对不起我&#39 django的新人,我试图在网上学习一切,你的帮助对我来说将是宝贵的!谢谢你,有一个美好的一天/晚上的家伙!
答案 0 :(得分:1)
您可以扩展保存功能
class Pizza(models.Model):
namepizza = models.CharField(max_length=200)
typepizza = models.ForeignKey(Type, on_delete=models.SET_NULL, null=True)
toppingpizza = models.ForeignKey(Topping, on_delete=models.SET_NULL, null=True)
obspizza = models.CharField(max_length=200, null=True)
pricetotal = models.DecimalField(max_digits=6, decimal_places=0, default=0)
def save(self, *args, **kwargs):
self.pricetotal = self.typePizza.priceBase + self.toppingPizza.priceTopping
super(Pizza, self).save(*args, **kwargs)
def __str__(self):
return self.namepizza
在views.py中使用get_or_create()