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

Django阻止超级用户查看/change/ page中的数据

Django是一个基于Python的开源Web应用框架,它提供了一套强大的工具和功能,用于快速开发高质量的Web应用程序。在Django中,超级用户(superuser)是具有最高权限的用户角色,可以访问和管理系统中的所有数据。

要阻止超级用户查看/change/页面中的数据,可以通过以下步骤实现:

  1. 创建自定义的Django权限:首先,我们可以创建一个自定义的Django权限,用于限制超级用户对/change/页面的访问。可以使用Django的权限系统来定义和管理权限。具体步骤如下:
    • 在Django项目的适当位置创建一个新的Python文件,例如permissions.py。
    • 在该文件中导入Django的权限模块:from django.contrib.auth.models import Permission。
    • 创建一个新的权限对象,例如NoChangePermission,并设置其名称和描述:permission = Permission.objects.create(codename='no_change_permission', name='No Change Permission', content_type=content_type)
    • 将该权限对象分配给超级用户角色:superuser.user_permissions.add(permission)
  • 重写Django Admin的视图函数:Django Admin是Django提供的一个强大的后台管理界面,可以用于管理数据库中的数据。我们可以通过重写Django Admin的视图函数来实现阻止超级用户查看/change/页面中的数据。具体步骤如下:
    • 找到Django项目中的admin.py文件,该文件用于配置Django Admin的相关设置。
    • 导入Django Admin的视图函数:from django.contrib.admin.views import change_view。
    • 创建一个新的视图函数,例如CustomChangeView,并在该函数中实现对超级用户的权限验证和重定向逻辑。
    • 在admin.py文件中注册该视图函数,并将其与/change/页面相关联:admin.site.register(MyModel, CustomChangeView)

通过以上步骤,我们可以实现阻止超级用户查看/change/页面中的数据。当超级用户尝试访问该页面时,系统会根据自定义的权限设置进行验证,并根据逻辑进行重定向或拒绝访问。

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

  • 腾讯云服务器(CVM):提供弹性计算能力,支持多种操作系统和应用场景。详情请参考:https://cloud.tencent.com/product/cvm
  • 腾讯云数据库(TencentDB):提供高性能、可扩展的数据库解决方案,包括关系型数据库和NoSQL数据库。详情请参考:https://cloud.tencent.com/product/cdb
  • 腾讯云人工智能(AI):提供丰富的人工智能服务和工具,包括图像识别、语音识别、自然语言处理等。详情请参考:https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):提供全面的物联网解决方案,包括设备管理、数据采集、数据分析等。详情请参考:https://cloud.tencent.com/product/iot
  • 腾讯云移动开发(Mobile):提供移动应用开发和运营的全套解决方案,包括移动后端服务、推送服务、移动分析等。详情请参考:https://cloud.tencent.com/product/mobile
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

django 1.8 官方文档翻译:13-1-2 使用Django认证系统

Django admin 站点使用如下权限: 查看”add”表单并添加一个只限具有该类型对象“add”权限用户对象。...查看修改列表、查看change”表单以及修改一个只限具有该类型对象change”权限用户对象。 删除一个只限具有该类型对象“delete”权限用户对象。...login()使用Django会话框架保存用户ID在会话。 注意任何在匿名会话设置数据都会在用户登入后会话中都会记住。...如果提供邮箱地址不在系统存在,这个视图不会发送任何邮件,但是用户也不会收到任何错误信息。这会阻止数据泄露给潜在攻击者。...如果你了一个非超级用户编辑用户能力,这和给他们超级用户权限在最终效果上是一样,因为他们将能够提升他们自己下面的用户权限。

4.6K20

Django官方文档小结(四) -- 用户及权限

在settings.py配置 AbstractUser AUTH_USER_MODEL = 'app名.UserProfile' 普通用户创建 创建用户最直接方法是使用包含 create_user...else: # 用户名密码不匹配 自定义用户验证 当用户需要邮箱登录时,验证是邮箱和密码,所以需要自定义用户验证 from django.contrib.auth.backends import...except:", e) return None 在settings.py配置 # 路径是CustomBackend路径 AUTHENTICATION_BACKENDS =...# 因为之前已经把用户权限全部清空,用户被加到权限组后, # 会拥有权限组权限,但是并不是自己权限,在数据没有记录,数据库只会记录用户在哪个权限组 如何查看用户是否拥有权限??...>>> g_player.permissions.all() # 查看权限组g_player权限 ]> #

39630

Python自动化开发学习-Django

django amdin是django提供一个后台管理页面,该管理页面提供完善html和css,使得你在通过Model创建完数据库表之后,就可以对数据进行增删改查。...创建超级管理员 使用下面的命令,创建超级管理员账户: python manage.py createsuperuser 根据提示,输入用户名和密码后,创建成功后,就可以去Web界面登录了。...在往下还有 “用户权限” ,默认所有的账户都是一张表权限都没有的,包括超级管理员。但是超级管理员账户勾选了 “超级用户状态(指明该用户缺省拥有所有权限。)” 所以无视这个设置。...,哪些字段是可以直接在列表修改,这种就不用一个一个点进去改了。...自定义权限 默认每张表都有 add、change、delete 这3个权限。也可以添加自定义权限,随便找个Model,一般就是用户信息Model。

1.7K30

Django认证系统并不鸡肋反而很重要

创建超级管理员 cmd中使用createsuperuser命令: $ python manage.py createsuperuser 根据提示输入username、email、password后,就会在数据创建...只会简单比较请求用户名密码和数据用户名密码是否匹配。...') 修改密码导致session失效 登录成功后,Django会把加密后密码hash值存入session,每次请求时,会校验session密码和数据密码是否匹配。...如果修改了密码,数据密码改变了,而session密码没有更新,那么密码就会匹配不上,导致session失效。...python manage.py migrate,数据迁移,使用自带SQLite数据库即可。 python manage.py createsuperuser,创建超级管理员。

1.1K10

登录注册小案例实现(使用Djangoform表单来进行用户输入数据校验)

登录注册案例 1.登录注册第一步——创建模型生成数据表: (1)名为mucisapp下models.py文件创建: from django.db import models # Create your...models.CharField(max_length=30, unique=True) password = models.CharField(max_length=50) (2)执行映射文件生成数据表...: 2.基本框架搭建 (1)登录注册登出视图函数框架编写: (mucis/views.py文件~) from django.views import View #使用类视图,要导入!...真正使用时候注册需要信息是比登录要多,所以这俩不可能使用同一个模板。本处为了方便讲解,所以只建了个含有用户名和密码模型。所以会造成注册和登录可以用同一个模板假象!...不信你看我在下面注册模板又随便加了个输入框,但是其实它没用,我只是为了强调这个问题! <!

4.6K00

登录注册小案例实现(使用Djangoform表单来进行用户输入数据校验)

,这个表单可以用来验证数据合法性还可以用来生成HTML代码 所以这个登录注册案例我们就来使用这个django自带form来生成前端页面以及验证数据. ②关于django form表单使用: 创建一个...使用is_valid()方法可以验证用户提交数据是否合法,而且HTML表单元素name必须和django表单name保持一致,否则匹配不到....如果绑定了,则返回True,否则返回False. cleaned_data:这个是在is_valid()返回True时候,保存用户提交上来数据. ③form表单一些参数说明: max_length...(2)在本案例实战使用这个form表单: 在此名为mucisapp下创建forms.py文件,编写表单校验(用户登录和注册数据校验): from django import forms from...""" # def clean(self): # 前端表单用户输入数据经过上面过滤后再结合后台数据库所有数据进行分析 # # 校验数据是否有该用户 #

4.3K00

【云+社区年度征文】Django认证系统并不鸡肋反而很重要

创建超级管理员 cmd中使用createsuperuser命令: $ python manage.py createsuperuser 根据提示输入username、email、password后,就会在数据创建...只会简单比较请求用户名密码和数据用户名密码是否匹配。...登出后session会被销毁,所有数据都会被清除,以防止其他人使用相同浏览器再次登录后获取到之前用户session数据。...') 修改密码导致session失效 登录成功后,Django会把加密后密码hash值存入session,每次请求时,会校验session密码和数据密码是否匹配。...如果修改了密码,数据密码改变了,而session密码没有更新,那么密码就会匹配不上,导致session失效。

1.6K70

Django权限机制实现

,即如果用户A对数据模型(model)B有可写权限,那么A能修改model B所有实例(objects)。...以博客系统为例,博客系统用户可分为『管理员』、『编辑』、『作者』和『读者』四个用户组;博客系统管理员和编辑具有查看、修改和删除所有的文章权限,作者只能修改和删除自己写文章,而读者则只有阅读权限。...当我们为应用创建一个Models, 在同步到数据库里,django默认给了三个权限 ,就是 add, change, delete权限。...第三步, 定义判断权限方法 下面来实验一下,我们定义一个查看学员列表权限: 第一步: 在models建立权限表,我是将映射关系存放在数据: class Permission(models.Model...'), ('views_student_info', '查看学员详细信息'), ) 第二步:在权限表添加内容,将对应权限写入数据库: ?

1.1K10

基于django视频点播网站开发-step6-个人中心功能

从本讲起,我们开始个人中心功能开发。个人中心里面包括个人资料、修改密码、订阅设置、意见反馈这四部分。通过这部分开发,我们将会接触到更多django用法。 <!...其中个人资料、修改密码、订阅设置是对用户信息编辑,反馈建议是属于创建新数据。...个人资料 这里主要是对个人资料进行编辑,先显示用户原有的信息,然后用户即可对其进行修改并保存,对于编辑功能,django有自己解决方案,即通过通用视图类UpdateView对模型进行更改。...,就实现了个人资料更新,再次彰显了django框架强大。...,AuthorRequiredMixin用途是:只允许用户自己查看自己个人资料,别人是无法查看

1.1K00

django自带权限机制

,即如果用户A对数据模型(model)B有可写权限,那么A能修改model B所有实例(objects)。...以博客系统为例,博客系统用户可分为『管理员』、『编辑』、『作者』和『读者』四个用户组;博客系统管理员和编辑具有查看、修改和删除所有的文章权限,作者只能修改和删除自己写文章,而读者则只有阅读权限。...打印到屏幕或页面时默认显示就是name 在model创建自定义权限,从系统开发角度,可理解为创建系统内置权限,如果需求涉及到用户使用系统时创建自定义权限,则要通过下面方法: from myapp.models...perms存储当前用户所有权限,权限检查可以参考下面例子: {% if perms.main.add_page %} ...('Forbidden') 例子虽然把post object作为参数传给get_perms()方法,但它只检查user全局权限是否有main.change_post权限,很多情况下可用原生user.has_perm

1.4K30

学习猿地 python教程 django教程10 Django用户认证

# Django用户认证 Django带有一个用户认证系统。它处理用户帐户,组,权限和基于cookie用户会话。...简而言之,身份验证验证用户是他们自称用户,并且授权决定允许经过身份验证用户执行操作。这里使用术语认证来指代这两个任务。...* 一个可配置密码散列系统 * 表单和查看工具,用于登录用户或限制内容 * 可插入后端系统 ### 用户,组,认证 模型 [https://docs.djangoproject.com/en/1.11...(用户名,电子邮件,密码,** extra_fields)     # 创建超级用户     myuser = User.objects.create_superuser(             request.POST...as closed"),         ) ``` 模板操作 ``` 获取当前会话用户 { { request.user.username } } 获取当前会话用户权限 https://docs.djangoproject.com

1.1K10

学习猿地 python教程 django教程10 Django用户认证

# Django用户认证 Django带有一个用户认证系统。它处理用户帐户,组,权限和基于cookie用户会话。...简而言之,身份验证验证用户是他们自称用户,并且授权决定允许经过身份验证用户执行操作。这里使用术语认证来指代这两个任务。...* 一个可配置密码散列系统 * 表单和查看工具,用于登录用户或限制内容 * 可插入后端系统 ### 用户,组,认证 模型 [https://docs.djangoproject.com/en/1.11...(用户名,电子邮件,密码,** extra_fields) # 创建超级用户 myuser = User.objects.create_superuser( request.POST...as closed"), ) ``` 模板操作 ``` 获取当前会话用户 { { request.user.username } } 获取当前会话用户权限 https://docs.djangoproject.com

91120

ElementUI 分页+django rest framework

一、概述 在之前文章,链接如下:https://www.cnblogs.com/xiao987334176/p/14313471.html 介绍了ElementUI 分页,前端请求一次接口,获取所有数据...但是,在实际项目中,不可能一次性返回所有数据,比如几十万条数据。 比较理想方案是,前端配合后端,一起来实现分页功能。大概思路如下: 1....page=2,这里page=2,表示当前页码数,接口返回10条数据。 3. 后面的以此类推,总之,每点击一次,请求一次接口,返回10条数据。...值表示可以选择一页多少条; :page-size值表示当前一页显示几条; layout值表示分页需要显示内容,例如“total” 表示总数、“next” 表示下一页等; :total值表示共几页...; 因为currentPage、pageSize并不是具体值,所以需要在script标签data()为其进行赋值。

1.6K10

Django】 开发:补充知识

有需要上网现查现学东西。 分页 分页是指在web页面有大量数据需要显示,为了阅读方便在每个页页只显示部分数据。 好处: 方便阅读 减少数据提取量,减轻服务器压力。...用户认证 (使用Django认证系统) Django带有一个用户认证系统。...作用: 添加普通用户超级用户 修改密码 文档参见 https://docs.djangoproject.com/en/2.2/topics/auth/ User模型类 位置: from django.contrib.auth.models...创建超级用户 from django.contrib.auth.models import Use user = User.objects.create_superuser(username='...过滤修改为 多个星号,但是用户自定义视图函数需要用户手动过滤敏感信息 1,视图函数局部变量 from django.views.decorators.debug import sensitive_variables

6.4K30

关于“Python”核心知识点整理大全59

例如,在项目“学习笔记”,应用程序最高层数据是主题,而 所有条目都与特定主题相关联。只要每个主题都归属于特定用户,我们就能确定数据每个条 目的所有者。...最简单办法是,将既有主题都 关联到同一个用户,如超级用户。为此,我们需要知道该用户ID。 下面来查看已创建所有用户ID。...然后,我们查看到目前为止都创建了哪些用户 (见2)。输出列出了三个用户:ll_admin、eric和willie。 在3处,我们遍历用户列表,并打印每位用户用户名和ID。...如果你确实想要一个全新 数据库,可执行命令python manage.py flush,这将重建数据结构。如果你这样做, 就必须重新创建超级用户,且原来所有数据都将丢失。...现在,如果你试图查看其他用户主题条目,将看到Django发送消息Page Not Found。在 第20章,我们将对这个项目进行配置,让用户看到更合适错误页面。

10810
领券