ModelForm验证笔记
Form验证
UserInfoForm --> Form -->BaseForm(is_valid...)
UserInfoModelForm -->ModelForm -->BaseModelForm -->BaseForm(is_valid...)
提交表单报错:RuntimeError: You called this URL via POST, but the URL doesn’t end in a slash and you have APPEND_SLASH set.
解决方法:
RuntimeError: You called this URL via POST, but the URL doesn’t end in a slash and you have APPEND_SLASH set.
提示form的action地址最后不是/结尾的,而且APPEND_SLASH的值是Ture
将from的action地址改为/结尾的就可以了
或者
修改settings:APPEND_SLASH=False
ModelForm
1.生成HTML标签:class Meta:....
2.mf=xxxModelForm(instance=ModelObj)
3.额外的标签is_rmb=field.CharField(widget=fwidget.CheckboxInput())
4.各种验证 is_valid() ->各种沟子
5.mf.save()
拆开:instance=mf.save(False)
instance.save() 保存当前对象
mf.save_m2m() 保存多地多
三种AJAX:
原生
jQuery
伪AJAX操作
使用场景:
如果发送的是普通的数据:jQuery,XMLHttpRequest,iframe
如果发送的是文件:iframe,jQuery(FormData),XMLHttpRequest(FormData),
验证码
1.创建一张图片 pip install Pillow
2.在图片中写入随机字符串
3.将图片写入到指定文件
4.打开指定目录文件,读取内容
5.返回给用户 HttpResponse(data)