Django--Form组件使用出现的小bug记录--username拿到None
2024-09-05 05:30:35
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,擦泪~~~
最新文章
- SQLSERVER语句 in和exists哪个效率高本人测试证明
- ruby调试/练习时的小技巧
- Oracle Data Guard的配置
- div水平居中
- delphi 换行操作 Word
- MySQL v5.1.72 + v5.6.19
- 基于HTTP Live Streaming(HLS) 搭建在线点播系统
- An exception occurred during configuration of persistence layer.
- SpringMVC简单例子
- delphi “Invalid floating point operation.”错误的解决方法
- JavaWeb图表插件的小研究
- document事件及例子
- install.php文件建表时设置编码方式
- 记号一次更换IBM X3650M4主板后RAID无法启动的解决
- go import使用及. _的作用解析
- 图->;连通性->;最小生成树(普里姆算法)
- P2894 [USACO08FEB]酒店Hotel 线段树
- C++中的关键字用法--- 四种强制类型转换的总结
- set,list,map分析
- js 对象引用传值