我有一个包含现金流的模型:正数和负数。当用户填写表格时,我想强制使用正数或负数。
所以基本上:
- 首先选择流入还是流出
- 接下来,您输入金额。标志将取决于您先前的选择
我该如何实现?我知道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')
答案 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)