Python 我的django表格不是';无法捕获验证错误
因此,我有一个自定义表单字段,它基本上检查我的数据库,以查看给定的值(凭证代码)是否有效。我在表单中有.pyPython 我的django表格不是';无法捕获验证错误,python,django,forms,validation,Python,Django,Forms,Validation,因此,我有一个自定义表单字段,它基本上检查我的数据库,以查看给定的值(凭证代码)是否有效。我在表单中有.py class VoucherField(CharField): def to_python(self, value): if not value: return "" return value def validate(self, value): super(CharField, self).vali
class VoucherField(CharField):
def to_python(self, value):
if not value:
return ""
return value
def validate(self, value):
super(CharField, self).validate(value)
vouchers = Vouchers.objects[0]
if not value in vouchers.valid:
raise ValidationError('This voucher is invalid or has been used already.')
class PurchaseForm(Form):
voucher = VoucherField(required=True)
...
和在views.py中
def orderHandler(request):
form = PurchaseForm(request.POST)
if form.is_valid():
# Processes
else:
# Return errors
问题在于form.is_valid()行一直导致Django抛出一个ValidationError,而不是捕获它并将消息保存到form.errors。我不确定为什么会发生这种情况任何时候需要调试帮助时,都应该包括错误的完整堆栈跟踪。另外,它应该是
super(VoucherField,self)
。这是从forms.CharField还是models.CharField继承的?通常在表单字段上定义clean
,而不是validate
。