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数据库配置问题]

  • 相关阅读:
    lampp、xampp安装文档
    tomcat下配置https方式
    1.6:怎么学习Linux
    1.5:linux的应用领域
    1.3:linux的优点和缺点
    1.4:Linux发行版本详解
    1.2:liunx和unix的区别
    1.1:Linux系统简介
    mysql中获取表名&字段名的查询语句
    kettle组件-输出
  • 原文地址:https://www.cnblogs.com/wanpython/p/2798324.html
Copyright © 2011-2022 走看看