关于表单问题

关于表单问题

老师,您好:

什么情况下使用forms.ModelForm,什么情况下又是使用form.Form呢?不太理解这两个的使用情况,请老师解释说明一下,到底应该在什么情况下使用模型表单还是使用表单呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好,

1、在HTML页面中利用form表单向后端提交数据时,会需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确。如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息。Django form组件就实现了上面所述的功能。即生成页面可用的HTML标签,对用户提交的数据进行校验,保留上次输入内容

2、ModelForm是form与model的终极结合,会根据model中的字段转换成对应的form字段,并且生成标签等操作。可以在模型已有的字段下添加额外的表单字段,将模型的字段转换成表单字段,由类meta的属性实现两者的字段转换。

例:

class ProductModelForm(forms.ModelForm):
    # 添加模型外的表单字段
    productId = forms.CharField(max_length=20, label='产品序号', initial='NO1')
    # 模型与表单设置
    class Meta:
        # 绑定模型
        model = Product
        fields = "__all__"      #字段,如果是__all__,就是表示列出所有的字段
        exclude = None        #排除的字段
        labels = None        #显示信息
        widgets = None        #自定义插件
        error_messages = None    #自定义错误信息
        # error_messages用法
        error_messages = {
              'title': {'required': '不能为空'}
        }

        #labels,自定义在前端显示的名字
        labels = {
                 "name":"用户名"  
               }


  • 为学习而奋斗 提问者 #1
    那么,什么情况下使用forms.Form表单,然后什么情况下使用Modelform呢?
    2020-11-15 12:49:01
  • 好帮手慕美 回复 提问者 为学习而奋斗 #2
    同学,你好, 1、若需要自己定义类并进行验证,可以使用forms.Form表单 2、若通过model生成一个对应的Form,则使用ModelForm即可 祝学习愉快~~~~
    2020-11-15 14:36:38
  • 为学习而奋斗 提问者 回复 好帮手慕美 #3
    那这两个有没有区别呢?
    2020-11-16 10:02:05
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师