form过滤代码:

  1. class LoginForm(forms.Form):
  2. username = forms.CharField(max_length=20,min_length=3,label='用户名',error_messages={
  3. 'required':'用户名不能为空!',
  4. 'invalid':'格式错误!',
  5. 'max_length':'用户名长度超限!',
  6. 'min_length':'用户名过短!'
  7. }
  8. ,widget=forms.widgets.TextInput(attrs={'class':'form-control','style':'width:300px'})
  9. )
  10. password = forms.CharField(max_length=18,min_length=3,label='密码',error_messages={
  11. 'required':'密码不能为空!',
  12. 'invalid':'格式错误!',
  13. 'max_length':'密码长度超限!',
  14. 'min_length':'密码长度过短!',
  15. }
  16. ,widget=forms.widgets.PasswordInput(attrs={'class':'form-control','style':'width:300px'})
  17. )
  18. def clean_username(self):
  19. username = self.cleaned_data.get("username") # 错将这里的username写掉了一个字母
  20. if username[0].isdigit():
  21. self.add_error('username','用户名不能以数字开头!')
  22. return username
  23. def clean_password(self):
  24. password = self.cleaned_data.get("password")
  25. if password == '':
  26. self.add_error('password','密码过于简单!')
  27. return password

视图函数:

  1. def login(request):
  2. form_obj = LoginForm()
  3. if request.method == "POST":
  4. form_obj = LoginForm(request.POST)
  5. print(form_obj.clean_data)
  6.  
  7. #结果:{'username': None, 'password': '1234',}

百思不得其解,虽然知道是哪里出了问题,但是就是找不出来,哎哎,

  1. def clean_username(self):
  2. username = self.cleaned_data.get("username") # 错将这里的username写掉了一个字母
  3. if username[0].isdigit():
  4. self.add_error('username','用户名不能以数字开头!')
  1.       return username # 这里必须return 回去 不然clean_data里面的username的值就是None

这回长记性了,这里get错了,username拿到的就是个None啊,返回回去也是个None,擦泪~~~

Django--Form组件使用出现的小bug记录--username拿到None的更多相关文章

  1. django Form组件

    django Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建 ...

  2. 6月28日 Django form组件 和 modelform组件

    Form介绍 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验用户是否 ...

  3. 9.24 Django Form组件

    2018-9-23 20:10:04 这两天优化了自己图书管理系统 github 连接:https://github.com/TrueNewBee/pythonDemo 顺便整理了博客,写了好多总结, ...

  4. Django—Form组件

    Django From简介 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比 ...

  5. django form组件 cookies,session

    django form组件 渲染标签  就是组件里面的字段在前端展示叫做渲染标签 校验数据  用户输入的数据提交给后端组件叫做校验数据 forms组件中定义的字段都是必须传值的(required=Tr ...

  6. Python Web框架篇:Django Form组件

    Form简介 在HTTP中,表单(form标签),是用来提交数据的,其action属性说明了其传输数据的方法:如何传.如何接收. 访问网站时,表单可以实现客户端与服务器之间的通信.例如查询,就用到了表 ...

  7. Django Form组件 学生管理系统

    from django.db import models # Create your models here. class Classes(models.Model): title=models.Ch ...

  8. Django——form组件和ModelForm

    一.原生form实现书城增删改查 1.构建模型并完成数据库迁移 (1)构建书城模型 from django.db import models # Create your models here. # ...

  9. Web框架django[Form]组件

    新手上路 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建Form类 # 创 ...

随机推荐

  1. CF46F Hercule Poirot Problem

    题意: 有n个房间和m扇门,每扇门有且仅有一把钥匙 有k个人度过了两天,在第一天开始的时候所有的门都是关闭的,在第二天结束的时候,所有的门也都是关闭的 在这两天内,每个人可以执行如下操作若干次: 关上 ...

  2. Activiti服务类- RepositoryService服务类

    Activity服务类-1 RepositoryService服务类一共47个接口1.创建部署//开始创建一个新的部署.DeploymentBuilder createDeployment(); 2. ...

  3. Excel2013下拉框选择自动填充颜色

    图一写判断公式,图二选择应用范围.

  4. 富文本编辑器word

    tinymce是很优秀的一款富文本编辑器,可以去官网下载.https://www.tiny.cloud 这里分享的是它官网的一个收费插件powerpaste的旧版本源码,但也不影响功能使用. http ...

  5. MySQL实现计算两点之间的距离

    DELIMITER $$ CREATE FUNCTION `calculateLineDistance`(startLng double, startLat double, endLng double ...

  6. Win内核原理与实现学习笔记2-现代操作系统的基本结构

    1.操作系统本属于软件的范畴,但它需要紧密的跟硬件打交道,它为上层应用软件或应用系统提供了一层抽象,专门负责硬件资源的管理和分配.(应用程序不需要跟硬件打交道,它们利用操作系统提供的功能来实现各种任务 ...

  7. pycham更换主题

    在pycham的file-->Setting-->Editor-->Colors&Fonts

  8. Python语法 - yield表达式(类似 m = yield i )

      yield是个表达式而不仅仅是个语句,所以可以使用x = yield r 这样的语法, yield表达式可以接收send()发出的参数,yield表达式是跟send方法一起配合使用   send方 ...

  9. Leetcode题目287.寻找重复数(中等)

    题目描述: 给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数.假设只有一个重复的整数,找出这个重复的数. 示例 1: 输入 ...

  10. Linux设备驱动程序 之 per-cpu变量

    数组形式 支持SMP的现代操作系统使用每个cpu上的数据,对于给定的处理器其数据是唯一的:一般来说,每个cpu的数据存放在一个数组中,数组总的每一项对应着系统上的一个存在的处理器:按当前处理器号确定这 ...