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

ModelForm上的Django和fieldsets

ModelForm 是 Django 中的一个用于处理表单的类,它可以自动生成表单字段,并且可以与模型进行绑定,从而实现自动验证和保存数据到数据库中。

在 ModelForm 中,可以使用 fieldsets 属性来定义表单的分组和显示顺序。fieldsets 是一个元组列表,每个元组包含两个元素,第一个元素是字段集的名称,第二个元素是字段集中包含的字段列表。

例如,假设我们有一个名为 Author 的模型,包含 name、email 和 age 三个字段,我们可以使用 fieldsets 属性将这些字段分成两个字段集,如下所示:

代码语言:python
代码运行次数:0
复制
from django import forms
from .models import Author

class AuthorForm(forms.ModelForm):
    class Meta:
        model = Author
        fieldsets = (
            ('Basic Information', {'fields': ('name', 'email')}),
            ('Advanced Information', {'fields': ('age',)}),
        )

在这个例子中,我们定义了两个字段集,第一个字段集名为 "Basic Information",包含 name 和 email 两个字段,第二个字段集名为 "Advanced Information",包含 age 一个字段。

使用 fieldsets 属性可以让我们更加灵活地控制表单的布局和显示顺序,从而提高用户体验。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django的Modelform组件

通过名字可以看出,这个组件的功能就是把model和form组合起来。...ModelForm 创建modelform #首先导入ModelForm from django.forms import ModelForm #在视图函数中,定义一个类,比如就叫StudentList...,这个类要继承ModelForm,在这个类中再写一个原类Meta(规定写法,并注意首字母是大写的) #在这个原类中,有以下属性(部分): class StudentList(ModelForm):...,编辑的时候得显示之前的数据吧,还得挨个取一遍值,如果ModelForm,只需要加一个instance=obj(obj是要修改的数据库的一条数据的对象)就可以得到同样的效果 保存的时候要注意,一定要注意有这个对象...但是也带来额外不好的地方,model和form之间耦合了。如果不耦合的话,mf.save()方法也无法直接提交保存。 但是耦合的话使用场景通常局限用于小程序,写大程序就最好不用了。

40110
  • CRM客户关系管理系统(十三) 第十三章、用户自定义认证第十四章、万能通用权限框架设计

    可以查看每张表里所有的数据 # 'crm_table_list': ['table_obj_list', 'GET', [], {'source':0,'status':0}], # 添加参数:只能访问来源是qq和未报名的客户...import perm_dic from django.conf import settings def perm_check(*args,**kwargs): #1.获取当前请求的url...args defined in perm dic, then set this request to passed perm #逐个匹配参数,看每个参数是否都能对应的上...*per_name和split,具体用法解释: ?...现在销售就只能看到自己创建的客户了 ? ? 这样,万通通用的权限框架就开发完毕了,权限的控制可大可小,而且想要移植到其它django项目时, 唯一需要改的,就是配置好perm_dic里的权限条目!

    1.1K00

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

    我想此时的场景下就两个标准: 1、相同的功能用最少的代码实现(代码少BUG也会少); 2、相对最易于理解,从而易于维护和扩展。 书归正传,web服务允许用户输入,基本上要靠表单。...3、通用视图 django.views.generic.ListView和django.views.generic.edit下的CreateView, UpdateView, DeleteView都是通用视图...比如CreateView就会由django自动的把页面上POST出的form数据解析到model生成的表单(或者form_calss指定的ModelForm类型表单),同时调用表单的save方法将数据添加到模型对应的数据库表中...在django的模型中就体现为ForeignKey、ManyToManyField或者OneToOneField。而在业务逻辑上,需要体现为一张表单,对应着数据库里的多张表。...由于python和django过于灵活,都将要求django的开发者们唯有更资深才能写出生产环境下的服务。

    3.4K20

    Django使用自己的用户系统

    name巴拉巴拉,django 的用户系统可能满足不了你的需求,这时候需要用自己的用户系统了,如何能在满足需求的时候充分又利用到django的用户系统?...django使用自己的用户系统 step-1 写自己的auth模块(定义user class) step-2 admin.py 注册到django的admin后台,并且修改一些field step-3...修改settings.py中相应配置 django使用自己的用户系统 用过django的人应该都会知道admin,什么,真的没用过?...不过,需求是多变的,比如,你有一个变态的用户系统,用户可能有大中小三张头像, 除了fisrt name ,last name外还有middle name,T^T name巴拉巴拉,django 的用户系统可能满足不了你的需求...,这时候需要用自己的用户系统了,如何能在满足 需求的时候充分又利用到django的用户系统?

    63920

    使用 Django 的 admin 定制后台,丰富自己网站的后台管理系统

    ModelAdmin 的详细参数 查看源码 为了更好的了解 Django 的管理类有哪些基本属性,我们可以去 Django 的源码中查找这个类的源代码,看一下它有哪些默认的属性和方法。...为了更好的介绍 admin 的一些常规属性,我以自己的博客使用的属性和展示效果来作例子。...fieldsets 这个属性是 fields 属性的拓展,它的具体用法类似如下: fieldsets = ( ('图标信息', {'fields': (('icon', 'icon_color'...如果要实现真正意义上的定制有别于 Django 自带的后台管理系统,xadmin 应该是最值得推荐的,它单独实现了一个后台管理,具体的介绍和使用方法可以自行查看 Github 的项目介绍,地址:https...://github.com/sshwsfc/xadmin 后记:Django 的后台管理系统真的非常强大,而且很人性化,给开发节省了一大笔时间和精力,通过合理的配置参数,就可以定制一个自己想要的后台管理系统

    3.2K10

    自定义 Django的User Model,扩展 AbstractUser类注意事项

    方法3: 使用OneToOneField 如果你想建立一个第三方模块发布在PyPi上, 这一模块需要根据用户储存每个用户的额外信息....5.自定义用户与内置身份验证表单 Django内置的forms和views和相关联的user model有一些先决条件。...如果你想让你自定义的User模型也可以在站点管理上工作,那么你的模型应该再定义一些额外的属性和方法。...7.自定义用户和权限 如果想让在自定义用户模型中包含Django的权限控制框架变得简单,Django提供了PermissionsMixin。...它提供给你所有Django权限类所必须的的方法和字段 7.1 如果要定制User的权限系统,最简单的方法是继承PermissionsMixin 源码: class PermissionsMixin(models.Model

    6.3K20

    从0开始做系统

    前面已经写了如何做接口,那是方便调用的。现在写个如何做后台系统,是方便操作的。 Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据。...先安装django,创建项目和app pip install django django-admin startproject xxx cd xxx python manage.py startapp...,列表时,对Date和DateTime类型进行搜索 inlines,详细页面,如果有其他表和当前表做FK,那么详细页面可以进行动态增加和删除 action,列表时,定制action中的操作 定制HTML...详细页面时,只读字段 fieldsets,详细页面时,使用fieldsets标签对数据进行分割显示 详细页面时,M2M显示时,数据移动选择(方向:上下和左右) ordering,列表时,数据排序规则 radio_fields...,详细页面时,使用radio显示选项(FK默认使用select) form = ModelForm,用于定制用户请求时候表单验证 可以参考: django admin高级扩展 简单的定制了一下: from

    1.4K30

    python测试开发django-114.ModelForm中局部钩子(clean_)和全局钩子校验

    有些场景不仅仅是对单个输入框的字符校验,比如修改密码的时候,会涉及2个输入框的数据格式校验,像这些复杂的场景校验需用到校验钩子来实现。...clean_字段名命名的函数,校验正常必须返回该字段的值self.cleaned_data.get(‘name’)) 4.全局钩子(类中定义的函数名clean,校验正常必须返回该对象的校验结果值return...self.cleaned_data) 5.每一步通过校验单结果都以字典形式保存在类对象的cleaned_data属性中 ModelForm模型表单 局部钩子命名规则为clean字段名称,如:cleancity...# 作者-上海悠悠 QQ交流群:717225969 # blog地址 https://www.cnblogs.com/yoyoketang/ class SubmitPageForm(forms.ModelForm...# 作者-上海悠悠 QQ交流群:717225969 # blog地址 https://www.cnblogs.com/yoyoketang/ class SubmitPageForm(forms.ModelForm

    65510

    django 关于 ModelForm

    ModelForm:大家在写表单的时候,会发现表单中的Field和模型中的Field基本上是一模一样的,而且表单中需要验证的数据,也就是我们模型中需要保存的。...那么这时候我们就可以将模型中的字段和表单中的字段进行绑定。比如现在有个Article的模型。...示例代码如下:from django import formsclass MyForm(forms.ModelForm): class Meta: model = Article...比如只想验证title和content,那么可以使用以下代码实现:from django import formsclass MyForm(forms.ModelForm): class Meta...比如表单上验证的字段没有包含模型中所有的字段,这时候就可以先创建对象,再根据填充其他字段,把所有字段的值都补充完成后,再保存到数据库中。

    80860
    领券