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,擦泪~~~

最新文章

  1. SQLSERVER语句 in和exists哪个效率高本人测试证明
  2. ruby调试/练习时的小技巧
  3. Oracle Data Guard的配置
  4. div水平居中
  5. delphi 换行操作 Word
  6. MySQL v5.1.72 + v5.6.19
  7. 基于HTTP Live Streaming(HLS) 搭建在线点播系统
  8. An exception occurred during configuration of persistence layer.
  9. SpringMVC简单例子
  10. delphi “Invalid floating point operation.”错误的解决方法
  11. JavaWeb图表插件的小研究
  12. document事件及例子
  13. install.php文件建表时设置编码方式
  14. 记号一次更换IBM X3650M4主板后RAID无法启动的解决
  15. go import使用及. _的作用解析
  16. 图->连通性->最小生成树(普里姆算法)
  17. P2894 [USACO08FEB]酒店Hotel 线段树
  18. C++中的关键字用法--- 四种强制类型转换的总结
  19. set,list,map分析
  20. js 对象引用传值

热门文章

  1. BZOJ 2039 / Luogu P1791 [2009国家集训队]employ人员雇佣 (最小割)
  2. 27、AOP-AOP功能测试
  3. Turbo编码
  4. Java+web+上传文件夹
  5. 【poj2431】驾驶问题-贪心,优先队列
  6. 创建全局变量用以保存传递MFC中不同窗口中的数据
  7. c实现单向链表
  8. SpringMVC指定webapp的首页
  9. ZOJ 2592 Think Positive ——(xjbg)
  10. 性能调优 | 如何通过性能调优突破 MySQL 数据库性能瓶颈?