在Django模型中创建价格计算器函数
我有这个:在Django模型中创建价格计算器函数,django,python-2.7,django-models,django-forms,Django,Python 2.7,Django Models,Django Forms,我有这个: Class OrderService(models.Model): article_deadline = models.IntegerField() article_pages= models.IntegerField() def price_calc(self): if OrderService.article_deadline <= 12 unit_price =
Class OrderService(models.Model):
article_deadline = models.IntegerField()
article_pages= models.IntegerField()
def price_calc(self):
if OrderService.article_deadline <= 12
unit_price = 35
elif OrderService.article_deadline>= 13 <= 24
unit_price= 30
else:
unit_price= 25
price_calc()
return unit_price
total_cost = article_pages * unit_price
Class OrderService(models.Model):
article_deadline=models.IntegerField()
article\u pages=models.IntegerField()
def价格计算(自身):
如果OrderService.article_deadline=13那么首先你应该使用self
而不是OrderService
,你需要在某个时候调用该函数,否则你的单价将无法计算,因为该函数从未被调用过。缩小这种范围的最佳方法是在函数中使用print(“testprice\u calc”)
语句
Class OrderService(models.Model):
article_deadline = models.IntegerField()
article_pages= models.IntegerField()
def price_calc(self):
#print("test price_calc") # check if the function ever gets called
if self.article_deadline <= 12:
unit_price = 35
elif self.article_deadline>= 13 <= 24:
unit_price= 30
else:
unit_price= 25
return unit_price * self.article_pages
并在管理中注册总成本,在函数中使用它,但同样的事情你也可以使用价格计算,它将显示/计算相同的值
您还可以看到函数从未被调用,因为如果OrderService.article\u需要记住,类中的方法可以自行接受类属性,如果您使用Pycharm,IDE可以为self对象提供提示,而且你以后也不会犯错误。它给出了一个错误,price_calc正好取1个参数(给定0)。有什么建议吗?非常感谢far@MailerDaemon现在检查代码。它应该可以工作。谢谢它工作了,只是返回了单价*self.article\u页面,然后总成本=价格\u计算
total_cost = price_calc