【问题标题】:Calculate price in models with django v2.1使用 django v2.1 计算模型中的价格
【发布时间】:2018-01-21 18:59:05
【问题描述】:

我需要您对我正在制作的这个应用程序的帮助,在这些模型中,我希望在模型 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

伙计们,我可以使用这个逻辑将我的披萨类型保存在数据库中,以便在有人在线订购披萨时检索计算出的数据吗?,我从右脚开始?抱歉,我是新手django,我正在尝试学习网络上的所有内容,您的帮助对我来说将是宝贵的!谢谢你们,祝你们白天/晚上愉快!

【问题讨论】:

    标签: django python-3.x django-models django-2.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()

    【讨论】:

      猜你喜欢
      • 2018-01-09
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多