使用“干净的”数据
调用表单is_valid()方法时会执行数据校验,当所有字段数据均合法时,方法返回True,否则返回False。
执行校验时,Django为表单对象创建cleaned_data属性。
通过校验的数据是“干净的”,被保存在表单的cleaned_data属性中。
cleaned_data属性只能在执行校验之后访问,否则会触发AttributeError异常。
在表单模板中,可以使用{
{form}}、{
{form.as_table}}、{
{form.as_p}}和{
{form.as_ul}}等变量获得表单字段的默认渲染效果。
Django允许在表单模板中自定义表单字段的渲染效果。在模板中,用{
{form.字段名}}格式来访问表单字段。
在表单模板中,也可用{%for%}循环来遍历表单字段。表单字段的常用属性如下。
{
{ form.字段名.label }}:字段的label文本,例如,“姓名”。
{
{ form.字段名.label_tag }}:封装在HTML 元素中的label文本,包含表单的 label_suffix。
{
{ form.字段名.value }}:字段值。
{
{ form.字段名.help_text }}:字段的帮助文本。
{
{ form.字段名.errors }}:字段未通过验证时的错误信息。
{
{ form.字段名.field }}:表单字段的 BoundField实例对象,用于访问字段属性。例如, {
{ form.name.field.max_length }} 。
表单集是表单对象的集合,用于处理多个表单。可调用django.forms模块提供的formset_factory()工厂类方法创建表单集类,示例代码如下。
classTestFormset=formset_factory(test,extra=2) #创建表单集类
test参数为自定义的表单类。extra参数指定表单集中包含的表单个数,默认为1。
创建了表单集类后,就可用其来创建表单集对象,示例代码如下。
formset = classTestFormset(request.POST) #使用客户端数据初始化表单集
formset = classTestFormset() #创建空白表单集
在视图函数中,可将表单集对象传递给模板,示例代码如下。
def useFormset(request):
classTestFormset=formset_factory(test,extra=2) #创建表单集类
if request.method == 'POST':
formset = classTestFormset(request.POST)
else:
formset = classTestFormset()
return render(request, 'temformset.html', {'formset': formset}) #将表单集传递给模板