Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我的django表格不是';无法捕获验证错误_Python_Django_Forms_Validation - Fatal编程技术网

Python 我的django表格不是';无法捕获验证错误

Python 我的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

因此,我有一个自定义表单字段,它基本上检查我的数据库,以查看给定的值(凭证代码)是否有效。我在表单中有.py

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