首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证空白、空空间和整数

验证空白、空空间和整数
EN

Stack Overflow用户
提问于 2013-05-23 05:05:31
回答 2查看 786关注 0票数 0

如何在单个method.Consider my forms.py中验证空白、空空间和整数

代码语言:javascript
复制
class UserprofileForm(forms.ModelForm):
    class Meta:
        model = Userprofile
        fields=['username1','phonenumber1','username1','phonenumber1']

如何验证这一点。

  • 并非所有字段都是强制性的。
  • 但是,如果分别输入了username1或username2,而没有分别输入phonenumber1或phonenumber2,则应该会引发验证错误。
  • 如果输入任何空白,也会引发验证错误。
  • 是使用views.py中的条带()验证空白的任何方法。

有人能告诉我如何实现this.Please吗?给我一个如何执行的例子。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-23 05:29:02

您可以使用clean()方法在其中执行验证逻辑:

代码语言:javascript
复制
class UserprofileForm(forms.ModelForm):
    class Meta:
        model = Userprofile
        fields=['username1','phonenumber1','username1','phonenumber1']

    def clean(self):
        # do your validation here, such as
        cleaned_data = super(UserprofileForm, self).clean()
        username1 = cleaned_data.get("username1")
        username2 = cleaned_data.get("username2")
        phonenumber1 = cleaned_data.get("phonenumber1")
        phonenumber2 = cleaned_data.get("phonenumber2")
        if (
            ((username1 and not username1.isspace()) and not phonenumber1) or
            ((username2 and not username2.isspace()) and not phonenumber2) or
            ((not username1 or username1.isspace()) and phonenumber1 is not None) or
            ((not username2 or username2.isspace()) and phonenumber2 is not None)
        ):
            raise forms.ValidationError("Name and phone number required.")
        return cleaned_data

您可以参考Django文档:

https://docs.djangoproject.com/en/dev/ref/forms/validation/#cleaning-and-validating-fields-that-depend-on-each-other

票数 1
EN

Stack Overflow用户

发布于 2013-05-23 05:22:19

代码语言:javascript
复制
class UserprofileForm(forms.ModelForm):
    class Meta:
        model = Userprofile
        fields=['username1','phonenumber1','username2','phonenumber2']

    def clean(self):
        if 'username1' in self.cleaned_data and 'phonenumber1' in self.cleaned_data:
            if not (self.cleaned_data['username1'] and self.cleaned_data['phonenumber1']):
                raise forms.ValidationError("You must enter both username1 and phonenumber1")
        if 'username2' in self.cleaned_data and 'phonenumber2' in self.cleaned_data:
            if not (self.cleaned_data['username2'] and self.cleaned_data['phonenumber2']):
                raise forms.ValidationError("You must enter both username2 and phonenumber2")


        return self.cleaned_data

您可以检查此验证方法。萨纳克斯

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

https://stackoverflow.com/questions/16706006

复制
相关文章

相似问题

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