zoukankan      html  css  js  c++  java
  • django form 验证

        前面讲了django form 定义这一块,对python的django的form有个大概的认识,这一节我主要讲下django form的验证处理

    处理分为两部分:

    1form自身处理

    2views里的处理

    form自身处理:

    假如我们定义一个用户的表单

    class Member(model.ModelFrom):

        def clean_username(self): 这个是对form里面的<input type="text" name="username">进行验证
            """验证帐号"""
            ....

       如果我们有个需求需要验证比如密码和重复密码是否相同的话。这样验证单个字段的方法就没有用了

      用下面这个就可以解决了

      def clean(self):

       这里就可以验证超过2个字段的数据

               password = self.cleaned_data.get('password', '').strip()
            password1 = self.cleaned_data.get('password1','').strip()
            if password and password1 and  password != password1:
                msg = u'两次密码输入不一致'
                self._errors["password1"] = ErrorList([msg])
                del self.cleaned_data["password1"]
            return self.cleaned_data

    哈哈,django的form神奇把

    2view的处理:

        if 'POST' == request.method:
            article = Domain.objects.filter(id=aid)[0]
            form = DomainForm(request.POST,instance=article)#这个是把request请求的数据和forml绑定起来

            if form.is_valid():#form验证处理
                form.save()#如果验证通过的话。把form的数据添加到数据库里

    如果我们在添加数据到数据库前需要处理一些数据,再入库的话,就可以用到下面一个方法了

       m = form.save(commit=False)

     m.title = 'sss'

     m.save()


                return HttpResponseRedirect('')
            else:
                tmp['form'] = form#这里是数据没有通过验证的话

        else:
            article = Domain.objects.filter(id=aid)[0]
            tmp['form'] = DomainForm(instance=article)  这个是把django的form和Model结合起来

       

    有兴趣的可以了解下关于django的其他方面的内容: [django get_object_or_404] [django regroup] [django sqlite数据库配置问题]

  • 相关阅读:
    Java JMX 监管
    Spring Boot REST(一)核心接口
    JSR 规范目录
    【平衡树】宠物收养所 HNOI 2004
    【树型DP】叶子的颜色 OUROJ 1698
    【匈牙利匹配】无题II HDU2236
    【贪心】Communication System POJ 1018
    【贪心】Moving Tables POJ 1083
    Calling Extraterrestrial Intelligence Again POJ 1411
    【贪心】Allowance POJ 3040
  • 原文地址:https://www.cnblogs.com/wanpython/p/2798324.html
Copyright © 2011-2022 走看看