form组件

时间:2023-12-16 23:41:14

form组件

form组件

form组件

form组件

form组件

form组件

def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['hobby'].choices =models.Hobby.objects.all().values_list('id', 'name')

choice从数据库取值,重写init

form组件

form组件

form组件

form组件

form组件

还有钩子函数校验  没加

form组件

form组件

form组件


举例:

模型类:

  form组件

对应form:

form组件

  form的字段必须与前端标签的name值保持一致才能用form_obj=UserForm(request.POST)传值, 也要和模型类中表的字段一致才能插入数据库.
  所以form的字段==前端标签的name值==models表中的字段

前台:

form组件

后端:

form组件

前端渲染form表单的三种方式:

第一种 {{ form_obj.as_p }}

form组件

    渲染成3个p标签,每个p表面里面包一个label一个input
    form_obj.as_p 通常不用,因为不够灵活

第二种  form_obj.字段名, 渲染单个标签

form组件

form组件

第三种常用, 循环form对象,想要什么样式另外加

form组件

form组件