Python 如何使用Django ModelForm检查已清除的_数据[';字段';]是否已设置,并且是否有值(其中0有效)?

Python 如何使用Django ModelForm检查已清除的_数据[';字段';]是否已设置,并且是否有值(其中0有效)?,python,django,validation,Python,Django,Validation,如果field1和field2不存在,或者确实存在但为空,fieldX应显示验证错误。但是,field1和field2是一个FloatFields,可以是0,因此这应该是真的。比如: def clean_fieldX(self): if self.cleaned_data.get('field1') is None or self.cleaned_data.get('field2') is None: raise forms.ValidationError('fieldX

如果
field1
field2
不存在,或者确实存在但为空,
fieldX
应显示验证错误。但是,
field1
field2
是一个
FloatFields
,可以是
0
,因此这应该是真的。比如:

def clean_fieldX(self):
    if self.cleaned_data.get('field1') is None or self.cleaned_data.get('field2') is None:
        raise forms.ValidationError('fieldX was not set properly')
这不起作用-不管怎样,它都会引发验证错误


对于上下文,
field1
field2
是隐藏的,由js根据用户操作设置,可见的
fieldX
提供了视觉反馈

我认为这不起作用,因为这些字段还没有准备好在
清理的\u数据中调用,而在运行
clean()
时,已经调用了所有
clean\u字段
方法。我可能错了,但这一切都如期进行,并将消息附加到了
fieldX

def clean(self):
    if self.cleaned_data.get('field1') is None or self.cleaned_data.get('field2') is None:
        raise ValidationError({'fieldX ': ValidationError(_('fieldX was not set properly!'), code='required')})

我认为这不起作用,因为在
clean_data
中没有准备好调用字段,而所有
clean_field
方法都是在运行
clean()
时调用的。我可能错了,但这一切都如期进行,并将消息附加到了
fieldX

def clean(self):
    if self.cleaned_data.get('field1') is None or self.cleaned_data.get('field2') is None:
        raise ValidationError({'fieldX ': ValidationError(_('fieldX was not set properly!'), code='required')})

如果字段1和字段2不为空,为什么要引发validationError?那么,您的问题是什么?虽然它应该在泛型的
clean()
方法中,但它可以工作。它不工作(它通过
if
并引发
验证错误,即使值设置为非零。我没有将它放在
clean()中)
因为验证错误应该附加到
fieldX
,除非有更聪明的方法这样做。有:。使用
min_value=0.0
required=True
表单字段属性如何?如果字段1和字段2不为空,为什么要引发validationError?那么,您的问题是什么?尽管如此,这会起作用它应该在泛型
clean()
方法中。它不起作用(它通过
if
并引发
验证错误,即使值设置为非零。我没有将它放在
clean()中)
因为验证错误应该附加到
fieldX
,除非有更聪明的方法这样做。有:。使用
min_value=0.0
required=True
表单字段属性如何?是的,如果是,使用
clean
,而不是
clean_field
。哎呀,忘记更改了,修复了,如果是,使用<代码>清理
,而不是
清理字段
。哎呀,忘记更改了,修复了