Django-正负整数字段(取决于选择)

时间:2019-03-30 11:30:36

标签: python django model

我有一个包含现金流的模型:正数和负数。当用户填写表格时,我想强制使用正数或负数。

所以基本上:

  
      
  1. 首先选择流入还是流出
  2.   
  3. 接下来,您输入金额。标志将取决于您先前的选择
  4.   

我该如何实现?我知道PositiveIntegerField可以像Integerfield这样工作,但是看不到如何将其集成到模型中?

class CashFlow(models.Model):

 POSITIVE= 'inflow'
 NEGATIVE= 'outflow'

cashflowchoices = (
    (POSITIVE, 'inflow'),
    (NEGATIVE, 'outflow'),
    )

type = models.CharField(max_length=20, choices = cashflowchoices, default=CALL)
amount = models.DecimalField(max_digits=20, decimal_places=2, default='1')

1 个答案:

答案 0 :(得分:0)

您可以为它覆盖模式保存方法

def save(self, *args, **kwargs):
    if self.type == 'outflow':
         if self.amount > 0:
             self.amount = self.amount * -1
    else:
         if self.amount < 0:
             self.amount = self.amount * -1
    super(CashFlow, self).save(*args, **kwargs)