首页 > web开发 > 正文

django form 验证

时间:04-08 来源:老王python, 标签:django

前面讲了django form 定义这一块,对python的django的form有个大概的认识,这一节我主要讲下django form的验证处理 处理分为两部分: 1form自身处理 2views里的处理 form自身处理: 假如我们定义一个用户的表单 class Member(model.ModelFrom): def clean_username(self): 这个是对form里面的进行验证 """验证帐号""" .... 如果我们有个需求需要验证比如密码和重复密码是否相同的话。这样验证单个字段的方法就没有用了 用下面这个就可以解决了



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结合起来

老王python提供python基础教程,爬虫,seo工具,excel相关开发教程。

Copyright © 2020 www.cnpythoner.com All rights reserved. 赣ICP备19013357号-1基于python+django开发