Джанго - положительное / отрицательное целое поле в зависимости от выбора - PullRequest
0 голосов
/ 30 марта 2019

У меня есть модель, которая состоит из денежных потоков: положительных и отрицательных. Я хотел бы ввести положительную или отрицательную сумму, когда пользователь заполняет форму.

Так в основном:

  1. сначала вы выбираете приток или отток
  2. Далее вы вводите сумму. знак будет зависеть от вашего предыдущего выбора

Как мне этого добиться? Я знаю о 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 голосов
/ 30 марта 2019

Вы можете переопределить метод модального сохранения для того же

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...