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

在Django admin中为超级用户进行会话范围的查询集过滤

在Django admin中,可以为超级用户进行会话范围的查询集过滤。会话范围的查询集过滤是指在Django admin中,根据当前登录用户的会话信息,对查询集进行过滤,以限制超级用户只能查看特定的数据。

为超级用户进行会话范围的查询集过滤可以通过重写Django admin的ModelAdmin类的get_queryset方法来实现。以下是一个示例代码:

代码语言:txt
复制
from django.contrib import admin

class MyModelAdmin(admin.ModelAdmin):
    def get_queryset(self, request):
        qs = super().get_queryset(request)
        if request.user.is_superuser:
            # 根据会话信息进行过滤
            qs = qs.filter(some_field=some_value)
        return qs

admin.site.register(MyModel, MyModelAdmin)

在上述代码中,我们重写了ModelAdmin类的get_queryset方法。首先,我们调用父类的get_queryset方法获取原始的查询集。然后,我们检查当前登录用户是否为超级用户,如果是,则根据会话信息对查询集进行过滤。最后,返回过滤后的查询集。

需要注意的是,上述代码中的some_field和some_value需要根据具体的业务需求进行替换。根据实际情况,可以使用不同的字段和值进行过滤。

这种会话范围的查询集过滤可以用于各种场景,例如,限制超级用户只能查看自己创建的数据,或者根据用户的角色进行数据过滤等。

推荐的腾讯云相关产品:腾讯云服务器(CVM)和腾讯云数据库(TencentDB)。腾讯云服务器提供可靠的云计算基础设施,可用于部署Django应用程序。腾讯云数据库提供高性能、可扩展的数据库服务,可用于存储和管理应用程序的数据。

腾讯云服务器产品介绍链接地址:https://cloud.tencent.com/product/cvm 腾讯云数据库产品介绍链接地址:https://cloud.tencent.com/product/cdb

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

相关·内容

Python全栈开发之Django基础

No.1 MVC&MTV MVC M全拼Model,主要封装对数据库层访问,对数据库数据进行增、删、改、查操作 V全拼View,用于封装结果,生成页面展示html内容 C全拼Controller...() 查询 查询表示从数据库查询对象集合 返回查询过滤器 all():返回所有数据 filter(): 返回满足条件数据 exclude(): 返回不满足条件数据 order_by()...,第一次使用会触发查询数据库,然后将结果缓存下载,再次使用直接调用缓存 限制结果 可以对结果进行切片操作,等同于数据库分页操作,但是不支持负数 list = BookInfo.objects.all...value0,那么用户会话Cookie将在用户浏览器关闭时过期,如果valueNone,那么会话永不过期 No.5 模板 负责封装构造要返回html 模板语言 变量 语法:{{变量}} 解析顺序...'默认值' 更多内建过滤器 自定义过滤应用创建templatetags目录 该目录下创建filters.py文件 #导入Library类 from django.template import

3.7K20

37.Django1.11.6文档

login()使用Djangosession框架来将用户ID保存在session。 请注意,匿名会话期间任何数据用户登录后都会保留在会话。...Django更改1.10: 旧版本,ModelBackend允许非活动用户进行身份验证。 处理对象权限 django权限框架对对象权限有基础支持, 尽管核心没有实现它. ...它接受请求,应用当前过滤查询以及用户提供搜索项。 它返回一个包含被修改以实现搜索查询元组,以及一个指示结果是否可能包含重复项布尔值。...由于查询字符串查询可以由用户操纵,因此必须对其进行清理,以防止未经授权数据暴露。...当设置True时,Django 将对每个请求保存会话到数据库。 注意会话Cookie 只有一个会话被创建或修改后才会发送。

24.2K80

35.Django2.0文档

. {% endcomment %} 3.过滤器 模板过滤器是变量被显示前修改它一个简单方法。 过滤器使用管道字符, {{ name|lower }} #它功能是转换文本小写。...如果查询没有返回结果也会抛出异常:  6.数据排序 在运行前面的例子,你可能已经注意到返回结果是无序。 我们还没有告诉数据库 怎样对结果进行排序,所以我们返回结果是无序。...,BookAdmin) admin.site.register(models.Publisher) 可以看到右边有filter,Django日期型字段提供了快捷过滤方式,它包含:今天、过往七天、当月和今年...超级用户标志:它赋予用户管理界面添加、修改和删除任何项目的权限。 如果一个用户帐号有这个标          志,那么所有权限设置(即使没有)都会被忽略。...普通活跃,非超级用户管理用户可以根据一套设定好许可进入。 管理界面每种可编辑对象(如:books、authors、publishers)都有三种权限:创建许可,编辑许可和删除许可。

11.2K100

后端框架学习-Django

‘ forloop.last:最后一次循环真 forloop.parentloop:外层循环 模板层过滤过滤器:变量输出时对变量进行处理 可以通过使用过滤器来改变变量输出显示 语法: {{...聚合查询 聚合查询是指对一个表一个字段数据进行部分或全部进行统计查询。 分为整表聚合和分组聚合。...字典 分组聚合 其实是为了实现Having语句 通过计算查询结果每一个对象所关联对象集合,从而得出总计值,查询每一项生成聚合 QuerySet.annotate(结果变量名(别名)=聚合函数...模型管理器类 作用:后台管理界面添加便于操作新功能 继承于django.contrib.adminModelAdmin类 应用admin.py定义模型管理器类 class XXXXManager...email 邮箱 first_name 名 last_name 姓 is_superuser 是否超级用户 is_staff 是否内部员工 is_active 伪删除 last_login 上次登陆时间

9.3K40

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

这是因为 django.contrib.auth 应用程序(提供基本用户身份验证功能)默认情况下是 INSTALLED_APPS 设置中提供超级用户名和密码用来登录将在下一节介绍管理工具。...记住,这是 Django 超级用户,而不是系统超级用户查询 Django 模型通过默认 Manager 类 objects 来访问数据库。...现在可以使用 http://localhost:8000/admin 启动管理工具,并使用前面创建超级用户帐号进行登录。我们注意到现在还没有可用模块。...职位可以按照发布时间进行排序,最开始是最近发布职位(减号表示降序)。用户可以按照标题和说明来查找职位,管理员可以根据位置对记录进行过滤。 图 3. 使用管理工具显示职位 ?...提供一个查询

3.2K30

django框架菜鸟教程_django框架菜鸟教程

V全拼View,与MVCC功能相同,接收请求,进行业务处理,返回应答。 T全拼Template,与MVCV功能相同,负责封装构造要返回html。...,即假使客户端进行POST方式请求,依然可以通过request.GET获取请求查询字符串数据。...objects.filter().delete() 查询 QuerySet 1、概念:从数据库获取对象集合 过滤器方法: all() filter() exclude() order_by() exists...():判断查询集中是否有数据,有返回Ture,无返回False 2、特性 惰性执行:创建查询时候不会调用数据库,调用数据时候访问,迭代、序列化、if合用 缓存 3、限制查询查询进行下标或切片操作...changepassword 用户名 3、App应用配置 settings.pyINSTALLED_APPS列表添加此类 4、注册模型类 # booktest/admin.py 文件编写代码

3K40

004:Django数据库查询

本章知识点 Django 数据库查询语句 Django 列表页 详情页 知识点讲解 Django 数据库查询语句 Django2.0版本之后,admin默认不创建超级用户,我们要使用admin需要使用命令...Python manage.py createsuperuser 用户名 邮箱 密码(不显示,两遍) Admin 语言 数据库查询 Pymysql ( (小白,18,python...), (小白,18,python), (小白,18,python), ) Django ORM返回quary_set对象 查询所有: student_list = Student.objects.all...) #where过滤 xb = Student.objects.get(id=1) #get条件必须唯一 学生信息列表和详情页 安装pillow python最广泛图片处理模块 pip install...Student.objects.all()查询所有学员信息,然后进行绑定 注意要绑定a标签连接 Href=”/student/{{ student.id }}/” 详情页 详情路由 urls.py

44120

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

Django认证框架只存在一种类型用户,因此诸如'superusers'或管理员'staff'用户只是具有特殊属性user对象,而不是不同类型user对象。...Web请求认证 Django使用会话和中间件来拦截request 对象到认证系统。 它们每个请求上提供一个request.user属性,表示当前用户。...login()使用Django会话框架保存用户ID会话。 注意任何在匿名会话设置数据都会在用户登入后会话中都会记住。...如果你升级一个现存站点,并且希望开启这一间件,而不希望你所有用户之后重新登录,你可以首先升级到DJango1.7并且运行它一段时间,以便所有会话用户登录时自然被创建,它们包含上面描述会话哈希...如果你了一个非超级用户编辑用户能力,这和给他们超级用户权限最终效果上是一样,因为他们将能够提升他们自己下面的用户权限。

4.6K20

Django 用户认证系统使用总结

,可以对它属性进行修改 >>>user.last_name='Lennon' >>>user.save() 如果已经安装了Django admin应用,可以直接创建用户 创建超级用户 使用createsuperuser...('new password') >>>u.save() 注:这里new password明文 如果已经安装了Django admin应用,也可以认证系统管理页面修改用户密码 修改密码,将注销对应用户所有会话...='secret',is_delete=1) 当然,除了是否删除,是否禁用等字段,其它字段一般不推荐这么做,可以验证用户账号密码前进行其它前置条件验证 注意:默认,django会优先验证我们显示提供参数...,最后再验证is_active是否未1,如果1,则返回None 权限和认证(Permissions and Authorization) 略 Web请求认证 Django每个请求提供了 request.user...注意:用户登录后,会话依旧保留登录前任何匿名会话数据。

1.8K10

Django Admin后台管理

2.创建超级管理员 python mange.py createsuperuser 3.注册模型类 登录后台管理后,默认没有任何模型类,需要在应用admin.py文件中注册,才可以在后台管理中看到...runserver,浏览器输入http://127.0.0.1:8000/admin/ 输入之前创建超级管理员账号密码后,进行登陆。...= ['id', 'name', 'addr', 'get_name'] 显示效果如下 注:属性列在后台管理页面是可以进行排序,而方法列是不能排序,如果需要排序需要设置admin_order_field...右侧过滤器,会将对应字段值列出来,用于快速过滤,通过list_filters属性设置。上方搜索框,用于对指定字段进行搜索,支持模糊查询,通过search_fields属性进行设置。...5.其他 富文本编辑器 后台管理员如果需要在后台编辑带样式文字,如编辑对商品详细信息描述,就需要使用富文本编辑器。这里以tinymceDjango Admin后台中如何使用富文本编辑器。

2.7K10

django 学习笔记一

也可以放在 setting 自定义设置要求 设置名称全部是大写 不要使用一个已经存在设置 global_setting.py 目录并没有此文件,此文件路径 django/conf/global_setting... 此文件 django 默认配置文件,如果没有设置 “配置文件路径”,则使用该默认配置 使用 python manage.py diffsettings 命令可以查看当前设置和默认设置 global_setting...不同 ---- 官方文档 也说明了其他方法设置 “设置文件路径” Mac 中有两种方式: # 第一种 export DJANGO_SETTINGS_MODULE=mysite.settings...shell 进入 shell 命令行 python manage.py shell # 查询所有 Question.objects.all() # 过滤查询 Question.objects.filter...【说明】以下例子是可以更改排列顺序例子(更改编辑界面的顺序) admin.py 文件admin.site.register(Question)行替换成: from .models import

99620

2024最新 PyCharm 2024.1 更新亮点看这篇就够了

生成架构感知型 SQL 查询 提升用户体验:自定义 PyCharm IDE 界面大小 灵活调整 IDE 视图比例 框架和技术:PyCharm Professional 加强开发支持 *Django...代码审查新纪元:编辑器内集成体验 PyCharm 2024.1 版本,我们 GitHub 和 GitLab 用户带来了全新升级代码审查体验。...现在,您可以 Django Structure(Django 结构)工具窗口中快速检查并一键注册未注册 admin 类,这一改进显著简化了 Django 管理界面的配置过程。...现在,进行如附加文件或运行函数等任务时,您只需要选择适当数据源或执行上下文,无需担心会话选择。...数据编辑器本地筛选 为了加快数据处理速度,数据编辑器现支持在当前页面上直接按列值进行行筛选,无需重新运行查询

62920

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

确定当前有哪些用户 我们迁移数据库时,Django将对数据库进行修改,使其能够存储主题和用户之间关联。 执行迁移,Django需要知道该将各个既有主题关联到哪个用户。...然后,我们查看到目前为止都创建了哪些用户 (见2)。输出列出了三个用户:ll_admin、eric和willie。 3处,我们遍历用户列表,并打印每位用户用户名和ID。...将所有既有主题都关联到管理用户ll_admin,我输入了用户ID值1(见6)。并非必须使用 超级用户,而可使用已创建任何用户ID。...代码 Topic.objects.filter(owner=request.user)让Django只从数据库获取owner属性当前用户 Topic对象。...现在,如果你试图查看其他用户主题条目,将看到Django发送消息Page Not Found。 第20章,我们将对这个项目进行配置,让用户看到更合适错误页面。

10810

Flask 操作Mysql数据库 - flask-sqlalchemy扩展

secondary 指定多对多记录排序方式 secondary join SQLAlchemy无法自行决定时,指定多对多关系二级联结条件 上面这些有很多基本选项说明,下面来进行数据库基本增删改等操作来加强理解...准备把数据写入数据库前,要先将数据添加到会话然后调用commit()方法提交会话。 数据库会话是为了保证数据一致性,避免因部分更新导致数据不一致。...Flask-SQLAlchemy查询操作是通过query对象操作数据。最基本查询是返回表中所有数据,可以通过过滤进行更精确数据库查询。 下面先来创建两个表数据模型:用户表和角色表。...常用SQLAlchemy查询过滤过滤器 说明 filter() 把过滤器添加到原查询上,返回一个新查询 filter_by() 把等值过滤器添加到原查询上,返回一个新查询 limit 使用指定值限定原查询返回结果...关联查询角色所有用户: #查询roles表id1角色 role1 = Role.query.get(1) #查询该角色所有用户 role1.users 执行如下: In [25]: from db_demo

20.4K22

23. Flask 操作Mysql数据库 - flask-sqlalchemy扩展

secondary 指定多对多记录排序方式 secondary join SQLAlchemy无法自行决定时,指定多对多关系二级联结条件 上面这些有很多基本选项说明,下面来进行数据库基本增删改等操作来加强理解...准备把数据写入数据库前,要先将数据添加到会话然后调用commit()方法提交会话。 数据库会话是为了保证数据一致性,避免因部分更新导致数据不一致。...Flask-SQLAlchemy查询操作是通过query对象操作数据。最基本查询是返回表中所有数据,可以通过过滤进行更精确数据库查询。 下面先来创建两个表数据模型:用户表和角色表。...常用SQLAlchemy查询过滤过滤器 说明 filter() 把过滤器添加到原查询上,返回一个新查询 filter_by() 把等值过滤器添加到原查询上,返回一个新查询 limit 使用指定值限定原查询返回结果...关联查询角色所有用户: #查询roles表id1角色 role1 = Role.query.get(1) #查询该角色所有用户 role1.users 执行如下: In [25]: from

5.3K20
领券