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

在django admin中为不是超级管理员的用户排除某个字段

在Django Admin中,为非超级管理员用户排除某个字段,可以通过自定义ModelAdmin类来实现。以下是完善且全面的答案:

在Django Admin中,可以使用ModelAdmin类来自定义管理界面。要为非超级管理员用户排除某个字段,可以通过重写ModelAdmin类的get_exclude方法来实现。

首先,创建一个自定义的ModelAdmin类,例如CustomModelAdmin,继承自django.contrib.admin.ModelAdmin。然后,在该类中重写get_exclude方法,根据用户权限判断是否排除某个字段。

代码语言:python
代码运行次数:0
复制
from django.contrib import admin

class CustomModelAdmin(admin.ModelAdmin):
    def get_exclude(self, request, obj=None):
        exclude = super().get_exclude(request, obj)
        if not request.user.is_superuser:
            # 判断用户是否为超级管理员
            exclude += ('field_to_exclude',)
            # 将需要排除的字段添加到exclude元组中
        return exclude

在上述代码中,我们通过判断request.user.is_superuser属性来确定用户是否为超级管理员。如果用户不是超级管理员,则将需要排除的字段添加到exclude元组中。

接下来,在admin.py文件中注册你的模型,并将自定义的ModelAdmin类与该模型关联起来:

代码语言:python
代码运行次数:0
复制
from django.contrib import admin
from .models import YourModel

admin.site.register(YourModel, CustomModelAdmin)

这样,对于非超级管理员用户,他们在Django Admin中查看和编辑该模型时,将不会看到被排除的字段。

请注意,上述代码中的'YourModel'应替换为你要进行操作的模型名称。

推荐的腾讯云相关产品:腾讯云服务器(CVM)、腾讯云数据库MySQL版、腾讯云对象存储(COS)。

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

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

相关·内容

Django管理应用程序高级配置BookInstance模型运用【Django

Django管理应用程序 Django管理应用程序可以使用模型自动构建可用于创建、查看、更新和删除记录站点区域。这可以开发过程节省大量时间,使测试模型和查看是否有正确数据变得容易。...Django项目只建议用于内部数据管理(也就是说,仅适用于组织管理员或内部人员),因为以模型中心方法不一定是所有用户最佳界面,并且暴露了许多关于模型不必要细节。...Author) admin.site.register(Genre) admin.site.register(BookInstance) 为了登录到管理员站点,我们需要启动员工状态用户帐户。...同一目录,manage-Py创建一个超级用户。系统将提示输入用户名、电子邮件地址和强密码。...向记录添加相关字段以允许内联编辑(例如,创建作者记录时添加添加和编辑书本记录功能)。

1.7K20

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

18.2.3 Django 管理网站 应用程序定义模型时,Django提供管理网站(admin site)让你能够轻松地处理模型。网 站管理员可使用管理网站,但普通用户不能使用。...本节,我们将建立管理网站,并通过它 使用模型Topic来添加一些主题。 1. 创建超级用户 Django允许你创建具备所有权限用户——超级用户。权限决定了用户可执行操作。...Django创建超级用户,请执行下面的命令并按提示做: (ll_env)learning_log$ python manage.py createsuperuser 1 Username (leave...这里我们输 入是ll_admin,但你可以输入任何用户名,比如电子邮件地址,也可让这个字段空(见2)。 你需要输入密码两次(见3)。 注意 可能会对网站管理员隐藏有些敏感信息。...现在,使用超级用户账户访问管理网站:访问http://localhost:8000/admin/,并输入你刚创建 超级用户用户名和密码,你将看到类似于图18-2所示屏幕。

16510
  • Django(60)Django内置User模型源码分析及自定义User

    大家好,又见面了,我是你们朋友全栈君。 前言 Django我们提供了内置User模型,不需要我们再额外定义用户模型,建立用户体系了。...它完整路径是django.contrib.auth.models.User。...对于一些想要删除账号数据,我们设置这个值False就可以了,而不是真正从数据库删除。 is_superuser:是否是超级管理员。如果是超级管理员,那么拥有整个网站所有权限。...,查看数据库auth_user表,如下 创建超级用户 创建超级用户有两种方式。...以上我们重新定义了User模型,新增了phone字段,并把phone作为校验字段,我们先来看下数据库表结构 接下里我们通过createsuperuser命令来创建超级用户 我们会发现创建超级用户时候

    1.7K20

    Django学习笔记之使用 Django项目开发框架

    jobs 目录包含以下文件: 清单 6. jobs 应用程序目录内容 __init__.py models.py views.py 提供应用程序项目中位置纯粹是Django 开发人员建立一种惯例...这是因为 django.contrib.auth 应用程序(提供基本用户身份验证功能)默认情况下是 INSTALLED_APPS 设置中提供超级用户名和密码用来登录将在下一节介绍管理工具。...记住,这是 Django 超级用户,而不是系统超级用户。 查询集 Django 模型通过默认 Manager 类 objects 来访问数据库。...过滤方法可以接受满足某个条件所有方法,但是排除不满足这个条件其他方法。下面的查询应该可以给出相同结果(“gte” 表示 “大于或等于”,而 “lt” 表示 “小于”)。 清单 12....现在可以使用 http://localhost:8000/admin 启动管理工具,并使用前面创建超级用户帐号进行登录。我们注意到现在还没有可用模块。

    3.3K30

    注册

    UserCreationForm 只指定了 fields = ("username",),即用户名,此外还有两个字段密码和确认密码 UserCreationForm 属性中指定。...所以默认表单渲染后只有用户名(username)、密码、确认密码三个表单控件。我们还希望用户注册时提供邮箱地址,所以 fields 增加了 email 字段。...设置 URL 模式 视图函数需要和对应 URL 绑定,这样当用户访问某个 URL 时,Django 才知道调用哪个视图函数处理用户请求。...import User admin.site.register(User) 为了进入后台,还要创建一个超级管理员用户,使用 python manage.py createsuperuser 创建一个管理员账户即可...如果你不知道怎么创建,请参照 Django Admin 后台发布文章 说明。

    9.1K60

    学习猿地 python教程 django教程11 Django管理站点

    # Django管理站点 > 自动管理界面是Django最强大部分之一。 > > 它从您模型读取元数据,以提供一个快速,以模型中心界面,让受信任用户可以管理您网站上内容。...> > 管理员建议使用仅限于组织内部管理工具。 > > 它并不打算构建你整个前端。.../ref/contrib/admin/) ### 1,创建一个可以登录管理网站超级用户 ``` python3 manage.py createsuperuser #需要添加用户名,邮箱,密码,确认密码...``` ### 2,进入应用admin.py文件,添加模型类 ``` from django.contrib import admin from . models import Stu # Register...__str__方法 def __str__(self): return self.username ``` ### 4,列表显示与字段相关其它内容 ``` class StuAdmin(admin.ModelAdmin

    26210

    学习猿地 python教程 django教程11 Django管理站点

    # Django管理站点 > 自动管理界面是Django最强大部分之一。 > > 它从您模型读取元数据,以提供一个快速,以模型中心界面,让受信任用户可以管理您网站上内容。...> > 管理员建议使用仅限于组织内部管理工具。 > > 它并不打算构建你整个前端。.../ref/contrib/admin/) ### 1,创建一个可以登录管理网站超级用户 ``` python3 manage.py createsuperuser #需要添加用户名,邮箱,密码,确认密码...``` ### 2,进入应用admin.py文件,添加模型类 ``` from django.contrib import admin from . models import Stu # Register...__str__方法 def __str__(self):     return self.username ``` ### 4,列表显示与字段相关其它内容 ``` class StuAdmin(admin.ModelAdmin

    40820

    Django Admin后台管理

    2.创建超级管理员 python mange.py createsuperuser 3.注册模型类 登录后台管理后,默认没有任何模型类,需要在应用admin.py文件中注册,才可以在后台管理中看到...runserver,浏览器输入http://127.0.0.1:8000/admin/ 输入之前创建超级管理员账号密码后,进行登陆。...但在模型类字段方法设置第一个参数verbose_name可以实现自定义标题,如ame = models.CharField(verbose_name='学校名', max_length=20)。...5.其他 富文本编辑器 后台管理员如果需要在后台编辑带样式文字,如编辑对商品详细信息描述,就需要使用富文本编辑器。这里以tinymceDjango Admin后台中如何使用富文本编辑器。...url(r'^tinymce/', include('tinymce.urls')), # 富文本编辑器 随后就可在模型类中使用该字段应用models.py添加如下内容 from django.db

    2.8K10

    django和xadmin打造后台管理系统(一)-xadmin安装及使用

    安装完django,该安装xadmin了,我们都知道django有自己原生后台admin,但这里我们不用admin,我们用xadmin,因为xadmin界面更加漂亮。...2.将xadmin引入到当前项目 首先修改shopping_sites/shopping_sites/settings.py文件,文件添加3行,如下: INSTALLED_APPS = (...4.数据库安装和使用 我们使用mysql作为数据库,首先要建库: mysql -uroot -p123456 #超级用户登录 然后新建数据库并赋权限: CREATE DATABASE shopping...5.启动django 然后修改op_xadmin目录下admin.pyadminx.py,内容如下: from .models import ops import xadmin # Register...使用命令:python manage.py createsuperuser 创建超级用户。 user:xadmin email:xadmin@szkingdom.com passwd:1qaz!

    1.7K41

    python+Django+mysql多图,多文件上传(包含admin

    为了利用DjangoImageField和FileField格式实现多图,多文件上传,在网上找了很久,基本上不是代码不全,就是报错一堆,因为这种格式可以和djangoadmin相结合,非常不甘心...,一个图集 图集对文件存储需要有一个字段设置多对多储存关系 post后获得文件 先对图集实例化,增加其他字段应填写值,对这个实例存储...,之后自行设置用户名密码 试验次数多了,发现migratemakemigrations前后各做一次,能让数据库多次初始化后叫好用 7.访问 ?...,之后自行设置用户名密码 试验次数多了,发现migratemakemigrations前后各做一次,能让数据库多次初始化后较好用 7.访问 ?...由于在建立model.py时候对数据字段类型做了限制,此处应是图片上传成非图片文件,就会报错。 其他字段类型也是一样。这就是django创建admin好处,不用写增删改查,却都有,也能判断

    2.8K20

    django 关于User模型

    一个用户可以拥有多个权限,一个权限可以被多个用户所有用。和Permission属于一种多对多关系。 is_staff:是否可以进入到admin站点。代表是否是员工。...is_active:是否是可用。对于一些想要删除账号数据,我们设置这个值False就可以了,而不是真正从数据库删除。 is_superuser:是否是超级管理员。...如果是超级管理员,那么拥有整个网站所有权限。 last_login:上次登录时间。 date_joined:账号创建时间。...当然你还可以继续使用user对象进行一些修改 user.last_name = 'abc' user.save() 创建超级用户: 创建超级用户有两种方式。第一种是使用代码方式。...用代码创建超级用户跟创建普通用户非常类似,只不过是使用create_superuser。

    1.1K30

    Django admin管理工具使用、定制及源码解析

    定制 admin.py只需要讲Mode某个类注册,即可在Admin实现增删改查功能,如: admin.site.register(models.UserInfo) 但是,这种方式比较简单,...当你希望整个系统某个类只能出现一个实例时,单例对象就能派上用场。 比如,某个服务器程序配置信息存放在一个文件,客户端通过一个 AppConfig 类来读取配置文件信息。...BlogAdmin(admin.ModelAdmin): #listdisplay设置要显示列表字段(id字段Django模型默认主键) list_display...4.设置只读字段 使用admin时候,ModelAdmin默认对于model操作只有增加,修改和删除,但是总是有些字段是不希望用户来编辑。...最终生成结果就是可以选择所有的省,也可以选择所有的市,这并不合理,正确应该是选择某个时候下拉列表里只有该省城市。 而,django原生并不能做到这么智能。

    4K40

    零基础使用Django2.0.1打造在线教育网站(九):初识后台管理

    然后点击下拉 Run manage.py Task按钮,命令行输入:runserver再回车: 浏览器地址栏输入http://127.0.0.1:8000/admin出现: 恭喜你...打开eduline/settings.py文件,找到第34行代码: 看到没,admin它其实也是一个app,不过我们新建项目时就已经创建好了,不用你去动手,是不是很人性化。...注册超级管理员 先点击菜单下Tools按钮 ,然后点击下拉 Run manage.py Task按钮,命令行输入 createsuperuser 然后系统会提示你输入以下信息:Username...,Email address,Password: 接下来进行数据库生成和迁移操作(因为users应用多了一个名为NewBee超级管理员),我们只需要对users 这个应用进行相关操作:...) 现在我们重新运行一下我们项目,浏览器地址栏输入:http://127.0.0.1:8000/xadmin回车,出现: 你可能会好奇这个是怎样实现,其实这就是你数据库设计字段

    1.2K30

    35.Django2.0文档

    如果发觉自己多个模板之间拷贝代码,你应该考虑将该代码段放置到父模板某个 {% block %} 。...超级用户标志:它赋予用户管理界面添加、修改和删除任何项目的权限。 如果一个用户帐号有这个标          志,那么所有权限设置(即使没有)都会被忽略。...普通活跃,非超级用户管理用户可以根据一套设定好许可进入。 管理界面每种可编辑对象(如:books、authors、publishers)都有三种权限:创建许可,编辑许可和删除许可。...例如,你可以给一个用户添加和修改publishers权限,而不给他删除权限。 请注意,这些权限是定义模块级别上,而不是对象级别上。...如果你给某人编辑用户权限,他可以编辑自己权限,这种能力可能不是你希望。 赋予一个用户修改用户权限,本质上说就是把他变成一个超级用户。你也可以给组中分配用户

    11.3K100

    ​第 07 篇:创作后台开启,请开始你表演!

    创建 admin 后台管理员账户 要想进入django admin 后台,首先需要创建一个超级管理员账户。...django admin 后台登录页面,输入刚才创建管理员账户密码就可以登录到后台了。...文章创建时间和修改时间应该根据当前时间自动生成,而现在是由人工填写,还有就是文章作者应该自动填充后台管理员用户,那么这些自动填充数据字段就不需要在新增文章表单中出现了。...此前我们 blog/admin.py 定义了一个 PostAdmin 来配置 Post admin 后台一些展现形式。list_display 属性控制 Post 列表页展示字段。...因为 timezone 模块函数会自动帮我们处理时区,所以我们使用django 我们提供 timezone 模块,而不是 Python 提供 datetime 模块来处理时间。

    1.1K20

    Django基本命令

    项目 格式:django-admin startproject 项目名,如: django-admin startproject mysite 创建APP应用 格式:python manage.py startapp...manage.py runserver 127.0.0.1 8080 #默认IP127.0.0.1 更新数据库表或字段 python manage.py syncdb 注意:Django 1.7.1...及以上版本需要用以下命令 python manage.py makemigrations python manage.py migrate 清空数据库数据 python manage.py flush...# 选择yes,会把数据全部清除,留下空表 创建超级管理员 python manage.py createsuperuser # 按照提示输入用户名和对应密码就好了邮箱可以留空,用户名和密码必填...# 修改 用户密码可以用: python manage.py changepassword username 查看更多命令 python manage.py 可以查看django所有命令

    62160
    领券