form过滤代码:

class LoginForm(forms.Form):
username = forms.CharField(max_length=20,min_length=3,label='用户名',error_messages={
'required':'用户名不能为空!',
'invalid':'格式错误!',
'max_length':'用户名长度超限!',
'min_length':'用户名过短!'
}
,widget=forms.widgets.TextInput(attrs={'class':'form-control','style':'width:300px'})
)
password = forms.CharField(max_length=18,min_length=3,label='密码',error_messages={
'required':'密码不能为空!',
'invalid':'格式错误!',
'max_length':'密码长度超限!',
'min_length':'密码长度过短!',
}
,widget=forms.widgets.PasswordInput(attrs={'class':'form-control','style':'width:300px'})
)
def clean_username(self):
username = self.cleaned_data.get("username") # 错将这里的username写掉了一个字母
if username[0].isdigit():
self.add_error('username','用户名不能以数字开头!')
return username
def clean_password(self):
password = self.cleaned_data.get("password")
if password == '':
self.add_error('password','密码过于简单!')
return password

视图函数:

def login(request):
form_obj = LoginForm()
if request.method == "POST":
form_obj = LoginForm(request.POST)
print(form_obj.clean_data) #结果:{'username': None, 'password': '1234',}

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

    def clean_username(self):
username = self.cleaned_data.get("username") # 错将这里的username写掉了一个字母
if username[0].isdigit():
self.add_error('username','用户名不能以数字开头!')
      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. django post请求 403错误解决方法

    --摘 第一次用Django做项目,遇到了很多问题. 今天遇到的问题是Django在处理post请求时多次出现403错误. 我先描述一下问题出现的环境:我用Django写了一个web服务端,姑且称它为 ...

  2. django加载本地html

    django加载本地html from django.shortcuts import render from django.http import HttpResponse from django. ...

  3. MyBankgon功能

    .帐户类 User 复制代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

  4. 智能指针share_ptr记录

    shared_ptr 是一个共享所有权的智能指针,允许多个指针指向同一个对象.shared_ptr 对象除了包括一个对象的指针,还包括一个引用计数器.当每给对象分配一个share_ptr的时候,引用计 ...

  5. python第三方库的更新和安装指定版本

    安装指定版本: pip install openpyxl==2.3.4 更新到最新版本: pip install --upgrade openpyxl

  6. Codeforces Round #599 (Div. 2) A,B1,B2,C 【待补 D】

    排序+暴力 #include<bits/stdc++.h> using namespace std; #define int long long #define N 1005000 int ...

  7. 页面的beforeunload和unload的事件应用

    博主最近遇到一个需求,需要在用户离开之前给一个提示,是否确认离开,并且用户确认离开的话,需要发出一个请求 下面直接上代码: <!DOCTYPE HTML> <html> < ...

  8. Feeding Chicken

    D - Feeding Chicken 从左上角开始,往右下角开始遍历,但是遍历的时候需要注意一点,就是遍历的时候需要连起来,就比如第一行从左往右进行遍历,但是第二行不能从左往右了,因为这样就分开了, ...

  9. jar包中的依赖jar版本冲突

    背景,项目中之前引入了一个 图片上传的jar <groupId>commons-fileupload</groupId> <artifactId>commons-f ...

  10. ReactiveCocoa实践

    1.按钮addTarget [[self.aDepositBtn rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNe ...