前面讲了
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结合起来
分享到:
相关推荐
需要注意的是,Django的多重继承中,如果多个类定义了相同的属性,比如Meta类,那么将默认采用第一个定义的属性。同时,如果在继承ModelForm的同时,还继承了Form,那么ModelForm必须放在前面。 此外,ModelForm...
### Django前端模板及crispy form美化等 #### 一、引言 本文档作为对上一篇关于Django用户登录注册等内容的延续,主要聚焦于如何利用第三方库Crispy Forms来实现前端页面的美化与优化。对于初学者而言,掌握Django...
本书《Django权威指南(Practical Django Projects第2版)》是为Python开发者准备的一本实战导向的书籍,它通过三个实用的项目来展开,具体包括内容管理系统(CMS)、博客应用程序(Blog)以及社交代码分享网站。...
### 使用Django Form解决表单数据无法动态刷新的两种方法 ...而第二种方法则提供了更好的用户体验,特别是在需要实时更新数据的情况下。开发人员可以根据项目的具体需求选择合适的方法来优化用户体验。
**PyPI 官网下载 | django-form-builder-0.8.6.tar.gz** 在Python的世界里,`PyPI`(Python Package Index)是官方的第三方软件包仓库,它为Python开发者提供了一个集中发布和下载开源软件的地方。当你看到"PyPI 官网...
第22周-第18章节-Python3.5-Django之Form组件验证2.avi
1 第一讲 入门1.1 开篇1.2 Django的入门体验1.3 结论2 第二讲 生成一个web form 做加法的简单例子2.1 引言2.2 实现2.3 补充说明3 第三讲 使用Template的简单例子4 第四讲 生成csv格式文件并下载5 第五讲 session和...
标题"Python库 | django_form_error_reporting-0.9-py2.py3-none-any.whl"指的是一个Python库,名为`django_form_error_reporting`,版本为0.9。这个库是专门为Python 2和3设计的,因为文件名中包含了"py2.py3",...
现在可以开始创建第一个 Django 项目了。在命令行中输入以下命令: ```bash django-admin startproject myproject cd myproject ``` 这将创建一个名为 `myproject` 的新项目,并进入该项目目录。 #### 二、使用...
2. **Django项目结构**:熟悉Django项目的目录结构,如`manage.py`、`settings.py`、`urls.py`和`wsgi.py`等文件的作用。 3. **模型(Model)**:Django的核心是ORM,模型定义了数据库表的结构,包含字段和方法,是...
### Django 实战之 eLeave Form #### Django 实战项目概述 Django 是一个高级的 Python Web 框架,鼓励快速开发和干净、实用的设计。通过这个实战项目,我们可以了解 Django 实战开发的流程和一些技巧,同时对 ...
标题"PyPI 官网下载 | django_jsform-3.7.0-py3-none-any.whl"中提到的"PyPI"是Python Package Index的缩写,是Python社区官方的软件包仓库,用于发布和下载Python第三方库。"django_jsform"是一个针对Python Django...
在本书的第二章中,读者将入门Django,了解如何搭建起整个项目的框架,并理解其运行机制。接着,第三章到第七章会深入到Django的核心课程,详细讲解视图(View)与URL配置、模板(Template)、模型(Model)、Admin...
该节提供了关于 Django 的简要介绍,适合刚接触 Django 的开发者了解其基本概念。 **2. 快速安装指南 (Quick install guide)** 这部分内容详细指导了如何安装 Django,包括安装 Python、设置虚拟环境、安装 Django...
**PyPI 官网下载 | django-file-form-3.0.1.tar.gz** 在Python的世界里,`PyPI`(Python Package Index)是官方的第三方软件包仓库,它为Python开发者提供了一个集中发布和获取开源软件的地方。当你看到“PyPI官网...
2. **应用创建**:理解Django中的“应用”概念,以及如何使用`python manage.py startapp`创建应用。 3. **模型(Model)**:定义数据结构和数据库表的类,包括字段类型、选项和方法。 4. **数据库迁移**:学习如何...
9. **Django扩展**: Django生态系统中有许多优秀的第三方库,如Django Rest Framework用于构建RESTful API,Django Channels支持WebSocket通信等,可以极大地拓展Django的功能。 通过深入学习和实践这个压缩包中的...
《DjangoCodes - Python新手学Django架站的16堂课 第2版》是一个针对初学者的Python Django教程资源包,旨在帮助新手快速掌握如何使用Django框架创建功能丰富的Web站点。本教程分为多个章节,每个章节都包含了实际的...
在Django中,我们可以集成第三方库如`django-captcha`,或者自定义实现生成和验证验证码的逻辑。修改Django源码来添加验证码字段,意味着我们需要在`AuthenticationForm`中处理验证码的输入和验证。 4. **签到功能*...
6. **表单(Form)**:Django的表单系统简化了网页表单的创建和处理。商品管理系统中的搜索框、添加商品、注册登录等都可以通过表单实现。 7. **支付集成**:为了完成在线交易,系统通常需要集成第三方支付平台,如...