首页
学习
活动
专区
工具
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 属性可以让我们更加灵活地控制表单的布局和显示顺序,从而提高用户体验。

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

相关·内容

DjangoModelform组件

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

38410

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_namesplit,具体用法解释: ?...现在销售就只能看到自己创建客户了 ? ? 这样,万通通用权限框架就开发完毕了,权限控制可大可小,而且想要移植到其它django项目时, 唯一需要改,就是配置好perm_dic里权限条目!

1.1K00

djangoModelForm多表单组合解决方案

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

3.4K20

Django使用自己用户系统

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

62220

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

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

3K10

从0开始做系统

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

1.4K30

自定义 DjangoUser Model,扩展 AbstractUser类注意事项

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

6K20

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

63410

Django ModelForm操作及验证方式

modelform结合体,所以有以下功能: 数据验证 数据库操作 model有操作数据库字段,form验证也有那几个字段,虽然耦合度降低,但是代码是有重复。...如果表单中包含URLField、EmailField其他整数字段类似,Django将使用url、emailnumber这样HTML5输入类型。...默认情况下,浏览器可能会对这些字段进行他们自身验证,这些验证可能比Django验证更严格。...钩子、额外字段 数据验证钩子 从上面的FormModelForm中,他们都是继承了BaseForm,而is_valid是在BaseForm中定义,所以ModelForm也能Form一样使用各种钩子...额外字段 像网页checkbox,一个月内免登陆,用提交到数据库么?

1.2K10

django 关于 ModelForm

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

79360
领券