`
m4774411wang
  • 浏览: 111853 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

django form 第2节

阅读更多
前面讲了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结合起来
1
1
分享到:
评论

相关推荐

    django1.6.5 form/formset/inline formset

    需要注意的是,Django的多重继承中,如果多个类定义了相同的属性,比如Meta类,那么将默认采用第一个定义的属性。同时,如果在继承ModelForm的同时,还继承了Form,那么ModelForm必须放在前面。 此外,ModelForm...

    Django前端模板及crispy form美化等

    ### Django前端模板及crispy form美化等 #### 一、引言 本文档作为对上一篇关于Django用户登录注册等内容的延续,主要聚焦于如何利用第三方库Crispy Forms来实现前端页面的美化与优化。对于初学者而言,掌握Django...

    Django权威指南(Practical Django Projects第2版)

    本书《Django权威指南(Practical Django Projects第2版)》是为Python开发者准备的一本实战导向的书籍,它通过三个实用的项目来展开,具体包括内容管理系统(CMS)、博客应用程序(Blog)以及社交代码分享网站。...

    使用Django Form解决表单数据无法动态刷新的两种方法

    ### 使用Django Form解决表单数据无法动态刷新的两种方法 ...而第二种方法则提供了更好的用户体验,特别是在需要实时更新数据的情况下。开发人员可以根据项目的具体需求选择合适的方法来优化用户体验。

    PyPI 官网下载 | django-form-builder-0.8.6.tar.gz

    **PyPI 官网下载 | django-form-builder-0.8.6.tar.gz** 在Python的世界里,`PyPI`(Python Package Index)是官方的第三方软件包仓库,它为Python开发者提供了一个集中发布和下载开源软件的地方。当你看到"PyPI 官网...

    第22周-第18章节-Python3.5-Django之Form组件验证2.avi

    第22周-第18章节-Python3.5-Django之Form组件验证2.avi

    Python Django自学教程 Python web开发基础教程 一步一步学习Django 共90页.pdf

    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-py2.py3-none-any.whl"指的是一个Python库,名为`django_form_error_reporting`,版本为0.9。这个库是专门为Python 2和3设计的,因为文件名中包含了"py2.py3",...

    django tutorial

    现在可以开始创建第一个 Django 项目了。在命令行中输入以下命令: ```bash django-admin startproject myproject cd myproject ``` 这将创建一个名为 `myproject` 的新项目,并进入该项目目录。 #### 二、使用...

    django框架学习笔记

    2. **Django项目结构**:熟悉Django项目的目录结构,如`manage.py`、`settings.py`、`urls.py`和`wsgi.py`等文件的作用。 3. **模型(Model)**:Django的核心是ORM,模型定义了数据库表的结构,包含字段和方法,是...

    django 实战之(eLeave Form)

    ### Django 实战之 eLeave Form #### Django 实战项目概述 Django 是一个高级的 Python Web 框架,鼓励快速开发和干净、实用的设计。通过这个实战项目,我们可以了解 Django 实战开发的流程和一些技巧,同时对 ...

    PyPI 官网下载 | django_jsform-3.7.0-py3-none-any.whl

    标题"PyPI 官网下载 | django_jsform-3.7.0-py3-none-any.whl"中提到的"PyPI"是Python Package Index的缩写,是Python社区官方的软件包仓库,用于发布和下载Python第三方库。"django_jsform"是一个针对Python Django...

    Django 原版翻译 Python

    在本书的第二章中,读者将入门Django,了解如何搭建起整个项目的框架,并理解其运行机制。接着,第三章到第七章会深入到Django的核心课程,详细讲解视图(View)与URL配置、模板(Template)、模型(Model)、Admin...

    django1.11.1

    该节提供了关于 Django 的简要介绍,适合刚接触 Django 的开发者了解其基本概念。 **2. 快速安装指南 (Quick install guide)** 这部分内容详细指导了如何安装 Django,包括安装 Python、设置虚拟环境、安装 Django...

    PyPI 官网下载 | django-file-form-3.0.1.tar.gz

    **PyPI 官网下载 | django-file-form-3.0.1.tar.gz** 在Python的世界里,`PyPI`(Python Package Index)是官方的第三方软件包仓库,它为Python开发者提供了一个集中发布和获取开源软件的地方。当你看到“PyPI官网...

    千锋教育Django笔记

    2. **应用创建**:理解Django中的“应用”概念,以及如何使用`python manage.py startapp`创建应用。 3. **模型(Model)**:定义数据结构和数据库表的类,包括字段类型、选项和方法。 4. **数据库迁移**:学习如何...

    千峰Django.7z

    9. **Django扩展**: Django生态系统中有许多优秀的第三方库,如Django Rest Framework用于构建RESTful API,Django Channels支持WebSocket通信等,可以极大地拓展Django的功能。 通过深入学习和实践这个压缩包中的...

    DjangoCodes - Python新手学Django架站的16堂课 第2版.rar

    《DjangoCodes - Python新手学Django架站的16堂课 第2版》是一个针对初学者的Python Django教程资源包,旨在帮助新手快速掌握如何使用Django框架创建功能丰富的Web站点。本教程分为多个章节,每个章节都包含了实际的...

    基于Django的签到系统

    在Django中,我们可以集成第三方库如`django-captcha`,或者自定义实现生成和验证验证码的逻辑。修改Django源码来添加验证码字段,意味着我们需要在`AuthenticationForm`中处理验证码的输入和验证。 4. **签到功能*...

    Django商品管理系统

    6. **表单(Form)**:Django的表单系统简化了网页表单的创建和处理。商品管理系统中的搜索框、添加商品、注册登录等都可以通过表单实现。 7. **支付集成**:为了完成在线交易,系统通常需要集成第三方支付平台,如...

Global site tag (gtag.js) - Google Analytics