Django框架 - form组件及钩子函数
form:https://www.cnblogs.com/zgf-666/p/9124214.html
widget:https://blog.csdn.net/djangor/article/details/28126511?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1
form的功能:
• 前端页面是form类的对象生成的 -->生成HTML标签功能
• 当用户名和密码输入为空或输错之后 页面都会提示 -->用户提交校验功能
• 当用户输错之后 再次输入 上次的内容还保留在input框 -->保留上次输入内容
钩子函数:对字段进行校验
clean_
要注意将所用到的变量返回,重写谁,return谁
# 重写全局的钩子函数,对确认密码做校验 def clean(self): password = self.cleaned_data.get("password") re_password = self.cleaned_data.get("re_password") if re_password and re_password != password: self.add_error("re_password", ValidationError("两次密码不一致")) else: return self.cleaned_data # 重写username局部钩子 def clean_username(self): username = self.cleaned_data.get("username") is_exist = models.UserInfo.objects.filter(username=username) if is_exist: self.add_error("username", ValidationError("该用户已经存在!")) else: return username
前端使用form组件(这里还不是很懂。回答:详见顶部form连接中的渲染标签部分,有三种方式渲染)
{% for field in register_form_obj %} <div> <label for="{{ field.id_for_label }}">{{ field.label }}</label> {{ field }} </div> {% endfor %}