Django-如何在一列中存储标量值(用于加法)或百分比值(用于乘法)?

Django-如何在一列中存储标量值(用于加法)或百分比值(用于乘法)?,django,django-models,django-forms,Django,Django Models,Django Forms,我在django中遇到了一个问题-我想存储“provision”值。但有时它的值是标量,例如2.10$,有时它的值是百分比,例如10%。当数据库中有值2.10时,我应该将该值添加到基价中。当我在数据库中的值为0.10时,我应该加上10%的基数以获得最终价格。例如: 10.0+2.10=12.10 10.0+10.0*0.10=11.0(或10.0*1.10=11.0) 为了避免有多个列(用于存储标量或百分比)和混淆:如果填充了两个值,我决定存储字符串值:“+2.10”或“*0.10”。看起来,我

我在django中遇到了一个问题-我想存储“provision”值。但有时它的值是标量,例如2.10$,有时它的值是百分比,例如10%。当数据库中有值2.10时,我应该将该值添加到基价中。当我在数据库中的值为0.10时,我应该加上10%的基数以获得最终价格。例如:

10.0+2.10=12.10

10.0+10.0*0.10=11.0(或10.0*1.10=11.0)

为了避免有多个列(用于存储标量或百分比)和混淆:如果填充了两个值,我决定存储字符串值:“+2.10”或“*0.10”。看起来,我需要一些django中的符号算术

我应该创造: -模型场 -表单字段 -表单小部件

示例代码:

class ProvistionWidget(form.Widget):
    pass

class ProvisionField(form.Field):
    pass

def eval_provision(price, provision):
    # if provision starts with *, then multiply by price
    # if provision starts with +, then add to price
    return final_price

class Stock(models.Model):

     price = FloatField()
     provision = ProvisionField()

     def calc_price(self):
         return eval_provision(self.price, self.provision)

我已经编辑了关于请求离线资源的部分(这会使问题偏离主题)。这仍然有点离题,因为没有代码。是否可以添加一些您想要的逻辑应该应用于views.py而不是模型中。向我们展示您希望保存“provision”值的视图代码。Prakar Trivedi-我暂时没有视图。但我认为我应该使用模型(放置适当的数据*或+),控制器(决定如何计算最终价格)和视图来在管理面板中显示适当的小部件。