首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django之ModelForm

forms组件之前更方便了,但跟ModelForm比起来,都显得苍白无力,把ModelForm吹了那么久,现在就让我们来见识见识ModelForm的强大。   ...类 from django import forms from django.forms import widgets as wid class BookModelForm(forms.ModelForm...但ModelForm就不一样了,它会把你的一对多的字段渲染成单选的select标签,把多对多的字段渲染成多选的select标签,这样就相当方便了。如下图: ?   ...这就解决了我们要手动的去把要编辑的对象每个字段的值取出来放入标签中。   ...总之啊,ModelForm是相当的好用,一直以来,我的叫法应该都有问题,我一直把forms组件下的Form叫成forms组件,之前写的Form和今天写的ModelForm都属于forms组件,大家请原谅我

57020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django的Modelform组件

    然而过程中未合法性验证,我们需要在前端判断用户输入是否合法,比如姓名必须在多少字符以内,电话号码必须是多少位的数字,邮箱必须是邮箱的格式,当然可以手动写限制,各种判断,然后除了麻烦可以有个更优雅的方法:...ModelForm 创建modelform #首先导入ModelForm from django.forms import ModelForm #在视图函数中,定义一个类,比如就叫StudentList...,这个类要继承ModelForm,在这个类中再写一个原类Meta(规定写法,并注意首字母是大写的) #在这个原类中,有以下属性(部分): class StudentList(ModelForm):...class Meta: model =Student #对应的Model中的类 fields = "__all__" #字段,如果是__all__,就是表示列出所有的字段...,编辑的时候得显示之前的数据吧,还得挨个取一遍值,如果ModelForm,只需要加一个instance=obj(obj是要修改的数据库的一条数据的对象)就可以得到同样的效果 保存的时候要注意,一定要注意有这个对象

    40110

    Django之ModelForm详解

    我们现在有个更优雅(以后在Python相关的内容里,要多用“优雅”这个词,并且养成习惯)的方法:ModelForm   先来简单的,生硬的把它用上,再来加验证条件: 首先导入ModelForm from...django.forms import ModelForm   在视图函数中,定义一个类,比如就叫StudentList,这个类要继承ModelForm,在这个类中再写一个原类Meta(规定写法,并注意首字母是大写的...) 在这个原类中,有以下属性(部分): class StudentList(ModelForm): class Meta: model = models.Student #对应的...然后在url对应的视图函数中实例化这个类,把这个对象传给前端。...代码示例: from django.shortcuts import render,HttpResponse,redirect from django.forms import ModelForm #

    1K40

    django中ModelForm多表单组合的解决方案

    所以,基本表单的功能看BaseForm已经足够了。 2、从模型创建表单 django对于MVC中的C与M间的映射是非常体贴的,集中体现中Model模型中(比如模型的权限与用户认证)。...中告诉django需要在表单中创建哪些字段。...比如CreateView就会由django自动的把页面上POST出的form数据解析到model生成的表单(或者form_calss指定的ModelForm类型表单),同时调用表单的save方法将数据添加到模型对应的数据库表中...ModelFormMixin提供在请求中处理modelform的方式。 SingleObjectTemplateResponseMixin帮助TemplateResponseMixin提供模板。...那么,从第1部分我介绍的Form里的prefix,以及第3部分里类图中的ProcessFormView允许重定义form_valid,以及第2部分中ModelForm的save方法的行为控制,解决方案已经一目了然了

    3.4K20

    Django中使用ModelForm保存数据

    相对来说,使用ModelForm保存数据在Django中算是比较简单的。...主要原因是ModelForm是建立在Django的模型(Model)之上的,它可以自动根据模型的定义生成表单,包括字段和验证规则。这样可以大大简化开发人员处理表单数据的工作。...使用ModelForm保存数据的流程也相对清晰明了:定义模型、创建ModelForm、在视图中处理表单提交。...虽然说相对简单,但在实际应用中,还是需要开发人员对Django框架有一定的了解和熟悉,尤其是对于复杂的表单和数据处理场景,可能需要更多的定制化工作。...1、问题背景在 Django 中,我创建了一个扩展自 Django User 的 Student 模型,它是一个外键,指向另一个模型,同时它有一个名为 year 的整数字段。

    12310

    Django源码学习-18-ModelForm

    Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...;阶段三,ModelForm 是Form和Django的Model数据库模型结合体,可以简单、方便对数据库进行增加、编辑操作和验证标签的生成。...ModelForm 定义: form与model的终极结合,会根据model中的字段转换成对应的form字段,并且能生成标签等操作。 ? ModelForm类的写法: ?......} } ModelForm 的验证: 与普通的Form表单验证类型类似,ModelForm表单的验证在调用is_valid() 或访问errors 属性时隐式调用。...如果不重写具体字段并设置validators属性的话,ModelForm是按照模型中字段的validators来校验的。 ?

    75220

    django 1.8 官方文档翻译:13-12 验证器

    = 0: raise ValidationError('%s is not an even number' % value) 你可以通过字段的validators参数将它添加到模型字段中...验证器如何运行 关于验证器如何在表单中运行,详见表单验证 。关于它们如何在模型中运行,详见 验证对象。...要注意验证器不会在你保存模型时自动运行,但是如果你使用ModelForm,它会在任何你表单包含的字段上运行你的验证器。关于模型验证器如何和表单交互,详见ModelForm 文档。...”) ,必须是正则表达式字符串,否则抛出[`TypeError`](https://docs.python.org/3/library/exceptions.html#TypeError) 异常。...编译正则表达式字符串regex时所用的标识。如果regex是预编译的正则表达式,并且覆写了flags,会产生TypeError异常。默认为 0。

    1.7K30

    应对PyTorch中的TypeError: ‘module‘ object is not callable

    应对PyTorch中的TypeError: ‘module’ object is not callable 摘要 大家好,我是默语,擅长全栈开发、运维和人工智能技术。...引言 在深度学习开发过程中,PyTorch是一个非常受欢迎的框架。...TypeError: 'module' object is not callable 是一个常见的Python错误,表示你尝试调用一个模块,但实际上应该调用模块中的一个函数或类。...如何解决TypeError 3.1 正确调用模块中的函数或类 确保你调用的是模块中的具体函数或类,而不是模块本身。...表格总结 方法 描述 正确调用函数或类 确保调用的是具体的函数或类 检查导入方式 确认导入方式正确 使用别名 为模块或函数使用别名以避免混淆 未来展望 在未来的工作中,我们可以继续探索更多的深度学习技术

    18710

    Django Form 实现多层(嵌套)模型表单

    在 Django 中,可以通过使用 ModelForm 和 InlineFormSet 来实现多层(嵌套)模型表单。这样可以在一个表单中同时编辑主模型及其相关的子模型。...下面是一个示例,演示如何实现这种多层嵌套的表单。1、问题背景如何使用 Django 的 Form 来创建涉及多个模型的多层嵌套表单?...需要创建涉及多个模型的表单,例如“测验-问题-答案”模型,并且每个测验包含多个问题,每个问题有多个答案。2、解决方案方法一使用 Django 的 ModelForm 来创建各个模型的表单。...需要考虑保存数据的顺序,即先保存最底层的模型,然后是中间层的模型,最后是顶层的模型。方法二使用 Django 的 InlineFormSet 和 ModelForm 来创建多层表单。...代码示例方法一:手动组合表单from django.forms import ModelForm, Form​class QuizForm(ModelForm): class Meta:

    8410
    领券