目录
- Form操作
- a.创建form类
- b.View函数处理
- c.生成HTML标签
- 字段
- 插件
- 常用选择插件
- choices的选项可以从数据库中获取
- 初始化数据
- 自定义验证规则
- 方式一:使用RegexValidator模块
- 方式二:
- 方式三:利用钩子自定义验证方法
- 方式四:
- is_valid校验的过程--源码分析
- 两个钩子hook
- 1. _clean_fields() 里面的 clean_字段() 局部钩子
- 2. _clean_form() 里面的全局clean()钩子
- 其他
- 去除select字段默认生成的多的“---------”选项
- model中null=True 和 blank=True的区别
- 修改样式属性
- 自定义datetime日期格式
- 作业
Form操作
orm(model)提供了数据库操作,但是验证的功能较弱
form专门用来做验证
参考文档
a.创建form类
from django.forms import Form
from django.forms import widgets
from django.forms import fields
class MyForm(Form):
user = fields.CharField(
widget=widgets.TextInput(attrs={'id': 'i1', 'class': 'c1'}),
error_messages={'required':'用户名不能为空'}, # 自定义错误信息
)
gender = fields.ChoiceField(
choices=((1, '男'), (2, '女'),),
widget=widgets.RadioSelect
)
pwd = fields.CharField(
widget=widgets.PasswordInput(attrs={'class': 'c1'}, render_value=True)
)
b.View函数处理
from ... import MyForm
def index(request):
if request.method == "GET":
obj = MyForm()
return render(request, 'index.html', {'form': obj})
elif request.method == "POST":
obj = MyForm(request.POST, request.FILES) # 创建form对象
if obj.is_valid(): # 判断form验证是否通过
values = obj.cleaned_data # 获取正确数据
models.UserInfo.objects.create(**values)
else:
errors = obj.errors # 获取错误信息,dict对象
print(obj.errors['user'][0]) # 获取指定错误信息
print(obj.errors.as_json()) # 打包为字典的错误信息
return render(request, 'index.html', {'form': obj})
c.生成HTML标签