【问题标题】:converting input value into negatives before saving在保存之前将输入值转换为负数
【发布时间】:2021-12-13 05:22:10
【问题描述】:

请我有下面的模型和视图,但我希望在数量字段中输入的任何值都将在我的数据库中保存为负数。

views.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)

models.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)

【问题讨论】:

    标签: django django-models django-forms


    【解决方案1】:

    您可以在使用commit=False 实际保存表单之前修改任何模型属性。替换以下行

    receiveform.save()
    

    有了这个

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

    abs 将确保用户提交的任何负值不会被意外转换为正值。

    【讨论】:

      猜你喜欢
      • 2013-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-26
      • 2019-01-15
      • 1970-01-01
      • 2015-04-17
      • 1970-01-01
      相关资源
      最近更新 更多