Преобразование входного значения в отрицательное перед сохранением

Пожалуйста, у меня есть модель и представление ниже, но мне нужна ситуация, в которой любое значение, введенное в поле количества, будет сохранено как отрицательное число в моей базе данных.

 #view.py
  def post(self, request):
    receiveform = ReceiveForm(request.POST or None)
    stockform = StockForm(request.POST or None)
    if request.method == 'POST':
       
        if receiveform.is_valid() and stockform.is_valid():
            receiveform.save()
            stockform.save()
            messages.success(request,('Data save succefully'))
            return redirect('dashboard')
        else:
           print(receiveform.errors)

    receiveform = ReceiveForm(request.POST or None)
    context = {
      'receiveform':receiveform,
      'stockform':stockform,
     
    }
    return render(request, 'storesapp/receives.html', context)
  

#model.py
class Receives(models.Model):
   date = models.DateField(default=now)
   category = models.ForeignKey(Category, on_delete=models.CASCADE)
   quantity = models.IntegerField(default='0', blank=True, null=True)

Вы можете изменить любые атрибуты модели до фактического сохранения формы с помощью commit=False. Замените следующую строку

receiveform.save()

с этим

receives_instance = receiveform.save(commit=False)
receives_instance = -abs(receives_instance.quantity)
receives_instance.save()

abs гарантирует, что любое отрицательное значение, представленное пользователем, не будет случайно преобразовано в положительное.

Вернуться на верх