前面讲了
django form的定义这一块,对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结合起来
分享到:
相关推荐
第22周-第18章节-Python3.5-Django之Form组件验证2.avi
第一种方法,在视图函数上边添加一条...第二种方法,给出例子,主要为在html的form里面加入{% csrf_token %}这句话,视图函数内加入render(request, ‘app/breakdown_view.html’, locals()) 例子: <form clas
-------如何使用-------第一步:安装使用setuptools安装:easy_install autoforms或从源码安装:git clone git@github.com:jeffkit/autoforms.gitcd autoformspython setup.py install第二步:配置修改项目的...
第2周 本节鸡汤 模块初识 pyc是什么 python数据类型 bytes数据类型 列表的使用 元组与购物车程序练习 购物车程序练习实例 字符串常用操作 字典的使用 三级菜单实例 本周作业-购物车优化 第3周 作业 上节内容回顾 ...
第二个设置.py: INSTALLED_APPS = ( ... 'captchapy', ) 第三个views.py: from captchapy.captcha import CaptchaForm human = False if request.POST: form = CaptchaForm(request.POST) if form.is_...
在xadmin中是不能像原生admin那样使用formfield_for_manytomany方法来过滤多对多字段 进入xadmin源码,找到了formfield_for_dbfield这个方法,...2.第二步编写admin.py对User字段进行扩展,代码如下: # -*- coding: UT
将实例化的formset对象传递给前端页面,前端模板通过两层循环:第一层循环form,第二层循环form中的字段。当GET请求时,直接将实例化的formset对象传递给前端。当POST请求时,批量验证表单,当所有数据都没有问题时...
第2章 01 上节课复习 02 arp协议复习 03 字符编码 第3章 01 网络基础和dos命令 02 为何学习linux 03 课程内容介绍 04 操作系统内核与系统调用 05 操作系统安装原理 06 linux操作系统安装 07 初识linux命令 08 ...
为什么我从去年开始使用框架,我构建了一些小应用程序,是的,编码很快,但很难使用和理解,尤其是 django 的 FORM 系统,我发现很难验证和添加自定义错误消息,在某些你应该破解代码以满足你的逻辑的方式,但在,...
从2018年2月14日到2018年5月25日,我将在这里连续100天处理几个基于django的Web项目。 当每天完成工作后,我将每天编辑此自述文件。 日项目名我学到了什么关联天001 14/02/2018 博客应用如何自定义模型在管理面板中...
Ajax(Asynchronous Javascript And XML)翻译成英文就是“异步Javascript...异步交互:客户端发送一个请求后,无需等待服务器响应结束,就可以发送第二个请求; 局部刷新:浏览器页面局部刷新 局部刷新的意思就是当咱们
第一种方式ensure_csrf_cookie 这种方方式使用ensure_csrf_cookie 装饰器...第二种方式 前后完全分离,前端页面直接通过获取静态文件得到,然后直接发送ajax请求,得到csrftoken,此时需要一个视图函数来返回token值
├─(143) 08 python全栈3 day58 DjangoForm组件初识.avi ├─(144) day58课上所有.rar (23)\\python全栈day51-60\\python全栈s3 day59;目录中文件数:8个 ├─(145) 01 python全栈3 day59.avi ├─(146) 02 python...
Along the way you'll cover how to create a database, build a model layer with business rule validations, implement listing/details data browsing, provide CRUD (Create, Update, Delete) data form entry...
Flask:封装功能不及Django完善,性能不及Tornado,但是Flask的第三方开源组件比丰富;http://flask.pocoo.org/extensions/Bottle:比较简单;总结:都不是我写的!!!不论优劣,不同的工具而已;小型web应用设计的...
演示 FrontEnd: : 如果运行该应用程序时出现错误,请重新加载页面。 后端: : 如果在运行此应用程序时遇到错误,请重新加载页面。 特征 ...会话超时(非活动会话5分钟后自动注销) ...创建第一个简历 确保后端服务器
文献资料 pip install -r req.txt python manage.py migrate 任务:tasks.pdf 评论:英文 第一部分: СергейЧ: mainapp(模式+ form_validation(验证码))+ django_redis缓存 ...第二部分: ....