我正在构建一个基于自定义ModelForm和自定义验证的表单集。
问题是验证失败,没有错误。
下面是自定义的ModelForm和表单集:
class AlternateFloorForm(ModelForm):
class Meta:
model = Floor
exclude = ('id_edificio', 'numero_di_piano', 'link', 'id')
widgets = {
'bearing' : HiddenInput(),
'zoom_on_map' : HiddenInput(),
'posizione_immagine' : HiddenInput(),
}
class BaseAlternateFloorFormSet(BaseFormSet):
def clean(self):
if any(self.errors):
return
for i in range(0, self.total_form_count()):
form = self.forms[i]
bearing = form.cleaned_data.get('bearing', None)
if (bearing != None) or (bearing < 0) or (bearing > 360):
raise forms.ValidationError("Bearing is not correct!!!")我也尝试过只使用一种表单,但is_valid()始终为False,并且field.errors field.non_field_errors没有显示任何内容。
发布于 2012-11-10 00:04:51
所以,我错过了一个
return self在表单验证中,正如Raunak Agarwal所说,我使用了一种不正确的方法来返回来自Mark Lavin的错误。
但最重要的是
if (bearing != None) or (bearing < 0) or (bearing > 360):总是返回False。这是正确的条件:
if (bearing == None) or (bearing < 0) or (bearing > 360):感谢所有人!
发布于 2012-11-09 23:40:54
您缺少返回cleaned_data
https://stackoverflow.com/questions/13310596
复制相似问题