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

Django Admin站点中的不同字段集取决于用户组

。在Django中,Admin站点是一个自动生成的管理界面,用于管理后台数据和进行基本的CRUD操作。根据用户组的不同,可以为不同的用户组配置不同的字段集,以控制他们在Admin站点中看到和编辑的字段。

用户组是一种将用户分类的机制,可以根据用户的角色或权限将其分组。在Django中,可以通过在Admin站点的配置中指定用户组来定义不同的字段集。具体来说,可以通过自定义Admin类的方式来实现。

以下是一个示例,展示了如何根据用户组配置不同的字段集:

代码语言:txt
复制
from django.contrib import admin
from django.contrib.auth.models import Group
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.contrib.auth.models import User

# 定义不同用户组的字段集
class UserAdmin(BaseUserAdmin):
    fieldsets = (
        (None, {'fields': ('username', 'password')}),
        ('Personal info', {'fields': ('first_name', 'last_name', 'email')}),
        ('Permissions', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}),
        ('Important dates', {'fields': ('last_login', 'date_joined')}),
    )
    # 根据用户组配置不同的字段集
    def get_fieldsets(self, request, obj=None):
        if request.user.groups.filter(name='Admin').exists():
            return self.fieldsets
        else:
            return (
                (None, {'fields': ('username', 'password')}),
                ('Personal info', {'fields': ('first_name', 'last_name', 'email')}),
                ('Important dates', {'fields': ('last_login', 'date_joined')}),
            )

# 注册Admin类
admin.site.unregister(User)
admin.site.register(User, UserAdmin)

# 注册用户组
admin.site.unregister(Group)
admin.site.register(Group)

在上述示例中,我们定义了一个UserAdmin类,继承自BaseUserAdminfieldsets属性定义了Admin站点中显示的字段集。在get_fieldsets方法中,根据用户组的不同返回不同的字段集。如果用户组为"Admin",则返回完整的字段集,否则返回简化的字段集。

通过以上配置,我们可以根据用户组的不同来配置Admin站点中的字段集。这样,不同用户组的成员在Admin站点中看到的字段将会有所区别,从而实现了对字段的灵活控制。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb-for-mysql
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 物联网平台(IoT Explorer):https://cloud.tencent.com/product/iotexplorer
  • 移动开发平台(移动推送):https://cloud.tencent.com/product/umeng
  • 对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯区块链服务(Tencent Blockchain):https://cloud.tencent.com/product/tencentblockchain
  • 腾讯云元宇宙(Tencent Cloud Metaverse):https://cloud.tencent.com/solution/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

django admin 根据choice字段选择不同来显示不同页面方式

} }; #当选择类型改变时候触发react函数 django.jQuery(function () { react(); django.jQuery...unicode_literals from django.contrib import admin from image_cropping import ImageCroppingMixin from...) 补充知识:Django之自定义用户权限(自定义RBAC组件) RBAC组件 rbac 组件一般我们用于权限校验,帮助我们更好管理用户认证信息,不同用户权限不同,访问界面展示也不相同 什么是权限...任何利用中间件和自定义模块 传输和获取 当前用户权限信息 # 通过自定义 middleware 模块在 setting 中加入,引入中间件 from django.utils.deprecation...以上这篇django admin 根据choice字段选择不同来显示不同页面方式就是小编分享给大家全部内容了,希望能给大家一个参考。

2.9K10

Django实战-信息资讯-CMS权限管理

Django 权限permission 本质是 djang.contrib.auth 中一个模型, 其与 User user_permissions 字段是多对多关系。...可以通过admin将这些权限分配给不同用户。 ? auth_group 用户组 ? auth_group_permissions 用户组权限 ? auth_permission 用户权限 ?...② Group 用户组 from django.contrib.auth.models import Group 用户组(Group)和 User 模型是多对多关系。...django.contrib.auth.models.Group 定义了用户组模型, 每个用户组拥有 id 和 name 两个字段, 该模型在数据库被映射为 auth_group 数据表。...User 对象中有一个名为 groups 多对多字段, 多对多关系由 auth_user_groups数据表维护。Group 对象可以通过 user_set 反向查询用户组用户。

1K10
  • Django权限系统auth模块详解

    认证系统auth  auth模块是Django提供标准权限管理系统,可以提供用户身份认证, 用户组和权限管理。auth可以和admin模块配合使用, 快速建立网站管理系统。...,里面的属性包括以上几条: 创建好对象后,django会自动生成表,表名为auth_user,包含以上字段。...定义了用户组模型, 每个用户组拥有id和name两个字段, 该模型在数据库被映射为auth_group数据表。...User对象中有一个名为groups多对多字段, 多对多关系由auth_user_groups数据表维护。Group对象可以通过user_set反向查询用户组用户。...# add group = Group.objects.create(name=group_name) group.save() # del group.delete() 我们可以通过标准多对多字段操作管理用户与用户组关系

    1.6K20

    被解放姜戈06 假作真时

    之前了解了: 创建Django项目 数据库 模板 表格提交 admin管理页面 上面的功能模块允许我们做出一个具有互动性站点,但无法验证用户身份。我们这次了解用户验证部分。...在admin页面下,我们还可以控制不同用户组对数据库访问权限。我们可以在Groups中增加用户组,设置用户组对数据库访问权限,并将用户加入到某个用户组中。...这里,模板中调用了user一个方法,is_authenticated,将根据用户登录情况,返回真假值。需要注意,和正常Python程序不同,在Django模板中调用方法并不需要后面的括号。...增加处理函数,显示该模板,然后查看不同登录情况下显示结果。 管家冷不丁说,“你认识他们?!”  用户注册 我们上面利用了admin管理页面来增加和删除用户。...这是一种简便方法,但并不能用于一般用户注册情境。我们需要提供让用户自主注册功能。这可以让外用户提交自己信息,生成自己账户,并开始作为登陆用户使用网站。

    1.3K60

    Admin站点

    AppConfig.verbose_name 属性用于设置该应用直观可读名字,此名字在Django提供Admin管理站点中会显示, 注册模型类 登录后台管理后,默认没有我们创建应用中定义模型类...在列表页中点击"增加"可以进入增加页,Django会根据模型类不同,生成不同表单控件,按提示填写表单内容后点击"保存",完成数据创建,创建成功后返回列表页。 ?...定义与使用Admin管理类 Django提供Admin站点展示效果可以通过自定义ModelAdmin类来进行控制。...将方法作为列 列可以是模型字段,还可以是模型方法,要求方法有返回值。 通过设置short_description属性,可以设置在admin点中显示列名。...使用Admin站点上传图片 进入Admin站点图书管理页面,选择一个图书,能发现多出来一个上传图片字段 ?

    2.1K20

    django 1.8 官方文档翻译: 5-1-1 使用表单

    考虑一下Django Admin 站点,不同类型大量数据项需要在一个表单中准备好、渲染成HTML、使用一个方便界面编辑、返回给服务器、验证并清除,然后保存或者向后继续处理。...(ModelForm通过一个Form 映射模型类字段到HTML 表单元素;Django Admin 站点就是基于这个)。...表单和跨请求伪造防护 Django 原生支持一个简单易用请求伪造防护。当提交一个启用CSRF 防护POST 表单时,你必须使用上面例子中csrf_token 模板标签。...Django Form 类详解 所有的表单类都作为django.forms.Form 子类创建,包括你在Django 管理站点中遇到ModelForm。...更深入主题 这里只是基础,表单还可以完成更多工作: 表单 在表单集中使用初始化数据 限制表单最大数目 表单验证 验证表单集中表单数目 处理表单排序和删除 添加额外字段到表单中 在视图和模板中视图表单

    4.2K20

    35.Django2.0文档

    ,这个记录是一个列表。...要向让app book里面的models显示在这里面,只需把book注册到admin book app下admin.py from django.contrib import admin from book...,BookAdmin) admin.site.register(models.Publisher) 可以看到右边有filter,Django为日期型字段提供了快捷过滤方式,它包含:今天、过往七天、当月和今年...第七章 用户、用户组和权限 因为你是用超级用户登录,你可以创建,编辑和删除任何对像。 然而,不同环境要求有不同权限,系统不允许所有人都是超级用户。...浏览用户和用户组区域时候已经见过这些了。 如你所想,用户对象有标准用户名、密码、邮箱地址和真实姓名,同时它还有关于使用管理界面的权限定义。

    11.3K100

    Python全栈开发之Django基础

    如果在一台机器上,想开发不同项目,这些项目依赖同一个包版本不同,其他项目就无法正常运行了,所有我们要用到虚拟环境,虚拟环境就是对真实Python环境复制,通过建立多个虚拟环境,在不同虚拟环境中开发项目就实现了项目之间间隔...django==1.11.11 # 安装django1.11.11 Django基本使用 创建项目 创建第一个项目 django-admin startproject mysite; 项目默认目录 manage.py...) admin.site.register(HeroInfo) 自定义管理界面 # app01/admin.py,list_display表示要显示字段 from django.contrib import...查询表示从数据库中查询到对象集合 返回查询过滤器 all():返回所有数据 filter(): 返回满足条件数据 exclude(): 返回不满足条件数据 order_by(): 对结果排序...,然后将结果缓存下载,再次使用直接调用缓存 限制结果 可以对结果进行切片操作,等同于数据库中分页操作,但是不支持负数 list = BookInfo.objects.all()[0:2] 关联 关系字段类型

    3.8K20

    Django Admin后台管理:高效开发与实践

    2.3 字段字段管理 字段管理:可以在Admin类中使用fields或fieldsets属性来控制编辑页面中字段显示。...字段:fieldsets 允许将字段分组,提供更好用户体验,例如fieldsets = [('基本信息', {'fields': ['name', 'description']}), ...]。...用户模型:Django提供了一个默认用户模型,包含用户名、密码和电子邮件等字段。 3.2 用户、组和权限管理 用户管理:在Django Admin中,可以创建、编辑和删除用户。...本地化:通过使用Django内置国际化工具和翻译机制,可以轻松地将应用程序本地化为不同语言和地区。...跨脚本攻击(XSS) :对输出数据进行HTML编码,或使用Content Security Policy(CSP)。 跨请求伪造(CSRF) :使用CSRF令牌保护表单提交。

    16110

    django开发个人简易Blog——数据模型

    首先打开我们创建项目中settings.py文件,看到里面默认配置中有这样配置: INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth...通过这个管理界面,可以方便用户组和用户进行管理,并且有详细日志记录。 到目前为止,一个可以验证用户权限并且可管理用户组和用户后台管理系统就可以完美的运行了,简直太方便了。...上面已经执行过一遍这个命令,再次执行,会将INSTALLED_APPS下,未同步至数据库模型同步至数据库,已经在数据库中同步过不做同步,即使,字段有修改,也不予同步。...不用着急,blogapp目录下还有一个admin.py文件,存在即有它存在道理,它作用就是注册这个app到后台管理中,并且还可以在这里设置一些与后台管理功能相关功能,例如排序字段、可搜索字段等。...复杂功能我都不要,只要最基本就可以,打开admin.py,在其中加入如下代码: from django.contrib import admin from fengzhengBlog.blogapp.models

    90680

    37.Django1.11.6文档

    Django 提供F表达式 来允许这样比较。 F() 返回实例用作查询内部对模型字段引用。 这些引用可以用于查询filter 中来比较相同模型实例上不同字段之间值比较。...“正常”表单视图逻辑没有显着不同。 ...在Django认证框架中只存在一种类型用户,因此诸如'superusers'或管理员'staff'用户只是具有特殊属性user对象,而不是不同类型user对象。...权限和授权 Django本身提供了一个简单权限系统。 它提供了一种为特定用户和用户组分配权限方法。 它被Djangoadmin站点使用,但欢迎你在你自己代码中使用。...例如,你可以使用这个方法来移除内建“删除选中对象”操作: admin.site.disable_action('delete_selected') 一旦你执行了上面的代码,这个操作不再对整个站点中可用

    24.3K80

    Django-xadmin+rule对象级权限实现方式

    数据库记录导入导出(xsl, json等),并且拥有对象级权限控制(如:小A不能导出小B公司信息,更不能导入小B公司信息进行更新和新增) 1.2 现状 实现需求1:Django-admin让我们能够很方便实现一个管理后台程序...django-xadmin则在拥有admin基本功能基础上增加了更为丰富功能、界面也更加漂亮。...django工程、xadmin替换原生admin设置,请参照官方文档。...', ) 2.2 建立model 新增CompanyUser模型表示商家账户(即对django自带user模块进行扩展,使每个账号绑定自己公司码),新增Customer模型表示商家客户信息并包含公司码字段...) 2.3 admin.py以及adminx.py设置 如果使用原生django-adminadmin.py做如下设置: # admin.py from __future__ import absolute_import

    95820

    Django-guardian实现对象级别的权限控制

    特征 Django对象全新啊 匿名用户支持 高级API 经过严密测试 Django admin整合 装饰器 安装 要求Django1.7或更高版本 pip install django-guardian...guardian匿名用户与Django匿名用户不同Django匿名用户在数据库中没有条目,但是Guardian匿名用户有。...django-guardian随附两个装饰器,这可能有助于简单对象权限检查,但请记住,在装饰视图被调用之前,这些装饰器会触发数据库——这意味着如果在视图中进行类似的查找,那么最可能一个(或更多,取决于查找...admin集成 Django配有优秀和广泛使用admin应用程序。...它为Django应用程序提供基本内容管理。具有访问管理面板用户可以管理系统提供用户,组,权限和其他数据。 django-guardian 为Djangoadmin提供简单对象许可管理集成。

    3.4K30

    Django(1)初识Django「建议收藏」

    Django采用了MTV框架模式,即模型Model、模板Template和视图(Views),三者之间各自负责不同职责。...Django有许多功能强大第三方插件,可以很方便地开发出自己工具包,这使得Django具有很强可扩展性。...系统:完善缓存系统,可支持多种缓存方式 Auth认证系统:提供用户认证、权限设置和用户组功能,功能扩展性强 国际化:内置国际化系统,方便开发出多种语言网站 Admin后台系统:内置Admin后台管理系统...功能导入由模块Django.urls实现,如from Django.urls import include,path,re_path Admin后台系统:支持主流移动设备并新增属性ModelAdmin.autocomplete_fields...Management Commands(管理命令):inspectdb将MySQL无符号整数视作PositiveIntegerField或者PositiveSmallIntegerField字段类型

    2.8K20

    关于“Python”Django 管理网站核心知识点整理大全52

    18.2.3 Django 管理网站 为应用程序定义模型时,Django提供管理网站(admin site)让你能够轻松地处理模型。网 管理员可使用管理网站,但普通用户不能使用。...这里我们输 入是ll_admin,但你可以输入任何用户名,比如电子邮件地址,也可让这个字段为空(见2)。 你需要输入密码两次(见3)。 注意 可能会对网站管理员隐藏有些敏感信息。...我们创建应用程序learning_logs时,Django在models.py所在目录中创建了一个名为 admin.py文件: admin.py from django.contrib import...import Topic 2 admin.site.register(Topic) 这些代码导入我们要注册模型Topic(见1),再使用admin.site.register()(见2)让 Django...这个网页让你能够添加和修改 用户和用户组,还可以管理与刚才定义模型Topic相关数据。

    16410

    Python面试题:Django Web框架基础与进阶

    Django作为Python最流行Web开发框架之一,其基础知识与进阶技能是许多Python开发者面试重点。...一、基础问题概览Django架构与组件:MVC与MTV:解释DjangoMTV(Model-Template-View)架构与传统MVC架构区别。...表单与验证:表单类:阐述Django表单类定义、字段类型、验证规则、绑定数据、清洗数据等过程。自定义验证:演示如何为表单字段添加自定义验证方法,处理复杂验证逻辑。...用户认证与授权:认证系统:描述Django自带认证系统,包括用户模型、登录/登出、密码管理等。权限与组:解释Django权限系统,演示如何为用户分配权限、创建用户组,以及在视图中进行权限检查。...忽视安全性问题:误区:忽视SQL注入、跨脚本攻击(XSS)、跨请求伪造(CSRF)等安全威胁。

    22410

    Django admin 一些有用设置

    Django自带后台管理是Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以在各个appadmin.py文件中进行控制。以下是我最近摸索总结出比较实用配置。...可以在settings.py中设置: LANGUAGE_CODE = 'zh-CN' TIME_ZONE = 'Asia/Shanghai' 1.8版本之后language code设置不同: LANGUAGE_CODE...caption') 2、筛选器 筛选器是Django后台管理重要功能之一,而且Django为我们提供了一些实用筛选器。...唯一区别就是 这种方法 是登录http://ip/admin/  站点和用户组在一起 ? 而第一种方法是分开。 5.通过当前登录用户过滤显示数据 官方文档介绍: ?...4.设置只读字段  在使用admin时候,ModelAdmin默认对于model操作只有增加,修改和删除,但是总是有些字段是不希望用户来编辑

    2.6K70

    测试开发进阶(二十二)

    ,需要在当前应用下models.py文件中定义 一个数据库模型类相当于一个数据表(Table) 一个数据库模型类需要基础Model或者其子类 定义一个类属性,就相当于数据库表中一个字段( first_name...字段 max_length 最大长度 unique 设置当前参数唯一 verbose_name 设置人性化字段名 help_text 用于API文档中中文名 null 允许为空 black 设置前端可以不传递...修改数据表名称 在 Projects类中添加 db_table表名 verbose_name:在admin点中人性化展示 verbose_name_plural:复数显示(对照英文在单词后面+s) class...后台站点 注册站点 projects/admin.py from django.contrib import admin from .models import Projects, Person admin.site.register...修改展示部分 fields 指定在修改「新增」中需要显示字段 list_display 指定要列出字段 from django.contrib import admin from .models

    65630
    领券