首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Fomset is_valid()失败,没有错误

Django Fomset is_valid()失败,没有错误
EN

Stack Overflow用户
提问于 2012-11-09 23:10:02
回答 2查看 422关注 0票数 0

我正在构建一个基于自定义ModelForm和自定义验证的表单集。

问题是验证失败,没有错误。

下面是自定义的ModelForm和表单集:

代码语言:javascript
复制
 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没有显示任何内容。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-10 00:04:51

所以,我错过了一个

代码语言:javascript
复制
 return self

在表单验证中,正如Raunak Agarwal所说,我使用了一种不正确的方法来返回来自Mark Lavin的错误。

但最重要的是

代码语言:javascript
复制
 if (bearing != None) or (bearing < 0) or (bearing > 360):

总是返回False。这是正确的条件:

代码语言:javascript
复制
 if (bearing == None) or (bearing < 0) or (bearing > 360):

感谢所有人!

票数 0
EN

Stack Overflow用户

发布于 2012-11-09 23:40:54

您缺少返回cleaned_data

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13310596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档