一. ModelForm

  ModelForm是根据Model来定制的Form

二. ModelForm的创建

from django import forms
from app import models class MyModelForm(forms.ModelForm):
class Meta:
model = models.Book
fields = "__all__"
     labels = {
        "title":"书名",
        "price":"价格"
      }
      widgets{
        "password":forms.widgets.PasswordInput(attt={"class":"form-control"}),
      }

三. class Meta中常用的参数

  model = models.Book    对应models中的类

  fields = "__all__"       列出所有的字段

  exclude = None         排除的字段

  labels = None        提示信息

  widgets = None       自定义插件

  error_messages = None     自定义错误信息

四. ModelForm的使用

  1. 创建modelform对象

    form_obj = MyModelForm()          

    form_obj = MyModelForm(instance=obj)    如果需要对form进行有关操作就传进去一个实例对象

  2.  编辑操作

    form_obj = MyModelForm(request.POST,instance=obj)

    form_obj.save()             这样,就会对实例对象进行操作

五. 对ModelForm显示的字段做出限制

  1. 获取字段和字段对象

    self.fields      获取有序字典,(字段,字段对象)

  2. 对字段显示做出限制

    self.fields["key"].choices      获取可供选择的迭代器列表,重新定义这个值,就可以对字段的显示做出限制

    self.fields["key"].choices=[()]    这个值是列表中放着元组的数据

  3. self.instance的操作

    在实例化modelform对象的时候,instance=obj这个参数传的,这个obj是个类对象

    在modelform中的Meta中,可以使用self.instance对字段的显示进行限制

六. modelformset的使用

  1. 导入modelformset_factory模块
    rom django.forms import modelformset_factory

  2. 创建一个FormSet类
    FormSet = modelformset_factory(models,form,extra=0) # 第一个参数是表的models,第二个参数是表的forms,extra是额外多几行

  3. 实例化这个类
    formset = FormSet(queryset=需要处理的queryset数据)

  4. html渲染的时候
    1. 给每个form都加上{{ formset.id }}
    2. 在form表单中加{{ formsets.management_form }}
    3. 展示字段
      formset.字段 是带有input框的select
      formset.instance.字段 拿到的是数据源,没有select框

django中的modelform和modelfoemset的更多相关文章

  1. Django中使用ModelForm实现Admin功能

    接上一篇<Django中使用Bootstrap> ModelForm 可以将数据库中的信息展示在一个表中,因此我们在查询数据库信息时可以使用ModelForm在前端展示查询到的信息. 在上 ...

  2. Django中的ModelForm与Form

    django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm. 关于django中的表单系统有两种: 基于django.forms.Form 基于dj ...

  3. Django中ModelForm应用

    Django中ModelForm的应用 在传统中Form提交的POST的数据在服务器端获取时将不得不一一获取并验证数据的可靠性,但是使用django提供的Form时可简化该过程并提供相应的验证,同时D ...

  4. Django中Model-Form验证

    Django中Model-Form验证 class UserType(models.Model): caption=models.CharField(max_length=32) class User ...

  5. django中ModelForm save方法 以及快速生成空表单或包含数据的表单 包含错误信息

    django中ModelForm学习系列一~save方法 Model代码 from django.db import models # Create your models here. class P ...

  6. Django基础之forms组件中的ModelForm组件

    Django的model form组件 这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来,先来一个简单的例子来看一下这个东西怎么用:比如我们的数据库中有这样 ...

  7. Django 中 ModelForm 的使用

    定义 ModelForm 定制 ModelForm Meta 在 Form 中另外定义 Field 值得一提的一些 Field 转化 AutoField BooleanField ForeignKey ...

  8. Django中ModelForm详解

    1.ModelForm组件介绍:这个组件的功能就是把model和form组合起来 2.ModelForm的使用 1.首先需要导入ModelForm from django.forms import M ...

  9. Django中的Form表单

    Django中已经定义好了form类,可以很容易的使用Django生成一个表单. 一.利用Django生成一个表单: 1.在应用下创建一个forms文件,用于存放form表单.然后在forms中实例华 ...

随机推荐

  1. (ZT)算法杂货铺——分类算法之决策树(Decision tree)

    https://www.cnblogs.com/leoo2sk/archive/2010/09/19/decision-tree.html 3.1.摘要 在前面两篇文章中,分别介绍和讨论了朴素贝叶斯分 ...

  2. Spring-boot中@ConfigurationProperties,@Value,@PropertySource

    1.利用@ConfigurationProperties获取配置的值,@ConfigurationProperties是springboot提供的基于安全类型的配置放置. application.pr ...

  3. [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(一) -- 安装jdk(含jre)及 MySql 5.6.39

    [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(一)  --  安装jdk(含jre)及 MySql 5.6.39 回老家已经有一段时间了, 四五线 ...

  4. JQUERY之表单验证案例

    <!-- 需求: 用户注册页面要有用户名.密码.确认密码.邮箱 用户名文本框:用户名不能为空,且必须为数字与字母的6到12位的组合 密码框:密码不能为空,六到八位数字或字母的组合 确认密码框:确 ...

  5. windows操作系统python selenium webdriver安装

    这几天想搞一个爬虫,就来学习一下selenium,在网上遇见各种坑,特写一篇博文分享一下selenium webdriver的安装过程. 一.安装selenium包 pip install selen ...

  6. Jenkins安装和配置

     一.Jenkins的安装 我们在进行自动化测试的时候通常我们都会进行持续集成,可以帮助我们持续集成的工具有很多,我个人比较喜欢用Jenkins. 主要是因为它有如下优点: 开源免费 跨平台,支持所有 ...

  7. 使用c#调整图片质量

    //参数: 原始图片,保存路径,压缩比 private void CompressImage(MagickNet.Image img,string toPath, long ratio) { usin ...

  8. JDBC 心得

    还记得jdbc的及个步骤, 一是class出对象 2  链接数据库 3 SQL  pre开头的 4 允许SQL,result,exeupdate, 在这里想写的通过反射得到对象, Hibernate有 ...

  9. MongoDB - 1

    MongoDB - 1   一.初识MongoDB 之 什么东西都得先从理论入手,你说是不是啊? MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展 ...

  10. Ubuntu开机时提示“piix4_smbus 0000:00:07.3: SMBus Host controller not enabled”

    问题描述:Ubuntu开机时提示“piix4_smbus 0000:00:07.3: SMBus Host controller not enabled” 版本:Ubuntu 18.04    VMw ...