在Python Django中的验证错误

17 浏览
0 Comments

在Python Django中的验证错误

我有一个HTML表单,其中有一个可选字段,如下所示:\n


\n当我在字段中输入一些数字时,整个表单数据将保存到数据库中。但是当没有数据时,我会得到验证错误\n

ValidationError at /oms_data/ [u"''值必须是十进制数。"]

\n我尝试了半天以上来解决这个问题,但没有任何帮助。我尝试了以下解决此错误的方法。\n

    \n

  1. 我使用了一些在某个SO回答中建议的代码:\n
    total_amount = request.POST.get("total_amount",0) ## 获取total_amount或取默认值0
    

  2. \n

  3. 那没用,所以我使用了著名的try: except:,如下所示:\n
    try: 
       total_amount = request.POST["total_amount"]  
    except:             ## 无论是什么异常,而不仅仅是验证错误
       total_amount = 0
    

  4. \n

\n我不知道为什么这些都没有起作用。当尝试保存表单时出现错误。\n

save_Order_Selling_Pricing = models.Order_Selling_Pricing(order_id=order_id,vendor_name = vendor_name,total_amount =total_amount,
                                                              vendor_discount_percent=vendor_discount_percent,dg_percent = dg_percent,
                                                              vendor_discount_amount=vendor_discount_amount,vendor_percent = vendor_percent,
                                                              dg_discount_percent = dg_discount_percent,dg_discount_amount=dg_discount_amount,
                                                              final_selling_price = final_selling_price,order_selling_pricing_id=order_selling_pricing_id,
                                                              order_payment_mode = order_payment_mode,present_datetime=present_datetime)
                save_Order_Selling_Pricing.save()

\n对此问题的任何帮助将是非常好的!\n提前感谢!我使用的是Django 1.8和Python 2.7,如果这有助于解决问题。\n更新1:\n我的模型定义如下所示:\n

total_amount = models.DecimalField(max_digits=10,decimal_places=2,blank = True,null = True,default = Decimal('0.00'))

0