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

如何在django管理页面中按当前用户过滤关键对象

在Django管理页面中按当前用户过滤关键对象,可以通过以下步骤实现:

  1. 首先,确保你已经在Django项目中配置了认证系统,并且用户已经登录。
  2. 在你的关键对象的模型中,添加一个外键字段,用于关联到用户模型。例如,可以在模型中添加一个字段名为"user"的外键,关联到Django自带的User模型。
  3. 在你的关键对象的管理类中,重写get_queryset()方法,通过过滤当前用户来获取对象列表。可以使用request.user来获取当前登录用户。示例代码如下:
代码语言:python
代码运行次数:0
复制
from django.contrib import admin

class YourModelAdmin(admin.ModelAdmin):
    def get_queryset(self, request):
        qs = super().get_queryset(request)
        if request.user.is_superuser:
            return qs  # 超级用户可以查看所有对象
        return qs.filter(user=request.user)  # 普通用户只能查看自己创建的对象

admin.site.register(YourModel, YourModelAdmin)

在上述示例中,如果当前用户是超级用户,则返回所有对象;如果是普通用户,则只返回该用户创建的对象。

  1. 最后,在admin.py文件中注册你的模型和管理类。示例代码如下:
代码语言:python
代码运行次数:0
复制
from django.contrib import admin
from .models import YourModel

admin.site.register(YourModel, YourModelAdmin)

通过以上步骤,你就可以在Django管理页面中按当前用户过滤关键对象了。注意,这里的示例代码仅供参考,你需要根据自己的实际情况进行适当的修改和调整。

推荐的腾讯云相关产品:腾讯云服务器(CVM)和腾讯云数据库(TencentDB),可以提供稳定可靠的云计算基础设施支持。你可以访问腾讯云官网了解更多产品信息和详细介绍:

腾讯云官网:https://cloud.tencent.com/

腾讯云服务器(CVM)产品介绍:https://cloud.tencent.com/product/cvm

腾讯云数据库(TencentDB)产品介绍:https://cloud.tencent.com/product/cdb

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

相关·内容

35.Django2.0文档

在你的 Django 应用,你或许希望根据某字段的值对检索结果排序,比如说,字母顺序。 那么,使用order_by()这个方法就可以搞定了。 ?...其它的django.contrib应用程序,django.contrib.redirects,其它从网上下在的第三方Django应用程序一样,都会自行添加到管理工具。  ...管理工具有一个用户权限系统,通过它你可以根据用户的需要来指定他们的权限,从而达到部分访问系统的目的。 你通过管理界面编辑用户及其许可就像你编辑别的对象一样。...成员标志:它用来控制这个用户是否可以登录管理界面(即:这个用户是不是你们组织里的成员) 由于用           户系统可以被用于控制公众页面(即:非管理页面)的访问权限(详见第十四章),这个标志可用来区分...普通的活跃,非超级用户管理用户可以根据一套设定好的许可进入。 管理界面每种可编辑的对象:books、authors、publishers)都有三种权限:创建许可,编辑许可和删除许可。

11.3K100

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

Django模板,竖线(|)表示模板过滤器——对模板变量的值 进行修改的函数。过滤器date: 'M d, Y H:i'以这样的格式显示时间戳:January 1, 2015 23:00。...现在,主题列 表的每个主题都是一个链接,链接到显示相应主题的页面http://localhost:8000/topics/1/。...我们将让用户能够添加新主题、添加新条目以及编辑既有条目。 当前,只有超级用户能够通过管理网站输入数据。...我们不想让用户管理网站交互,因此我 们将使用Django的表单创建工具来创建让用户能够输入数据的页面。 19.1.1 添加新主题 首先来让用户能够添加新主题。...用于添加主题的表单 让用户输入并提交信息的页面都是表单,那怕它看起来不像表单。用户输入信息时,我们需 要进行验证,确认提供的信息是正确的数据类型,且不是恶意的信息,中断服务器的代码。

16110
  • django 1.8 官方文档翻译: 3-4-2 内建显示视图

    如果我们创建一个应用来管理会议,那么 一个 TalkListView (讨论列表视图)和一个 RegisteredUserListView ( 注册用户列表视图)就是列表视图的一个例子。...一个单独的讨论信息页面就是我们称 之为 “详细” 视图的例子。 在年/月/日归档页面,以及详细页面和“最后发表”页面,展示以数据库为基础的对象。...比如,考虑到每个publisher 详细页面上的图书列表的展示。DetailView通用视图提供了一个publisher对象给context,但是我们如何在模板添加附加信息呢?...动态过滤 另一个普遍的需求是在给定的列表页面根据URL关键字来过滤对象。...Book.objects.filter(publisher=self.publisher) 如你所见,在queryset区域添加更多的逻辑非常容易;如果我们想的话,我们可以 使用self.request.user来过滤当前用户

    1.4K40

    web开发框架之Django基础

    在脚本如何进行Django的运行 if __name__ == '__main__': import os import django # 注意路径(当前所在的位置,要加载Django...定义路由时,通常以斜线/结尾,其好处是用户访问不以斜线/结尾的相同路径时, Django会把用户重定向到以斜线/结尾的路径上,而不会返回404不存在。...:一个字符串,表示请求使用的HTTP方法,常用值包括:'GET'、'POST' user:请求的用户对象 path:一个字符串,表示请求的页面的完整路径...注意:一旦为模型类指明自定义的过滤器后,Django不再生成默认管理对象objects。 自定义管理器类主要用于两种情况: 1....创建管理员的命令如下,提示输入用户名、邮箱、密码。

    6.1K10

    04.Django基础四之模板系统

    比如使用逗号和空格去连接一个列表的元素,:{{ list|join:', ' }} '|'左右没有空格没有空格没有空格   Django的模板语言中提供了大约六十个内置过滤器。...safe     Django的模板在进行模板渲染的时候会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全,django担心这是用户添加的数据,比如如果有人给你评论的时候写了一段...,和你这个值相同的一个值,可以做对应验证是不是我给你的token,存储这个值的东西我们后面再学,你先知道一下就行了,就像一个我们后台给这个用户的一个通行证,如果你用户没有按照我给你的这个正常的页面来post...六 组件   可以将常用的页面内容导航条,页尾信息等组件保存在单独的文件,然后在需要使用的地方,文件的任意位置如下语法导入即可。...七 自定义标签和过滤器   这些我们后面用到的时候再讲: 1、 在settings的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag. 2、 在app创建

    2.5K30

    Django 1.10文文档-第一个应用Part7-自定义管理站点

    它让页面看起来像下面的样子: ? 添加关联对象 现在Question的管理页面有了,但是一个Question应该有多个Choices。而此时管理页面并没有显示。现在有两个方法可以解决这个问题。...在这个表单,Question字段是一个select选择框,包含了当前数据库中所有的Question实例。Django在admin站点中,自动地将所有的外键关系展示为一个select框。...填入相关信息点击保存后,Django自动将该Question保存在数据库,并作为当前Choice的关联外键对象。通俗讲就是,新建一个Question并作为当前Choice的外键。...:Choice对象将在Question管理页面进行编辑,默认情况,请提供3个Choice对象的编辑区域。...Templates可以放在你的文件系统Django所能访问到的任何地方。(运行Web服务器的用户即是运行Django用户)。然而,但是作为一个好的习惯,最好把模板放在本项目目录下。

    3.6K60

    Django模板语言与视图(view)

    比如使用逗号和空格去连接一个列表的元素,:{{ list|join:', ' }} '|'和':' 左右没有空格  Django模板语言中提供了约60个内置过滤器   default   如果一个变量是...写继承的母板的名字要是字符串形式,若不加 ' ' 则表示变量      自定义的内容要写在block 组件 可以将常用的页面内容导航条,页尾信息等组件保存在单独文件,然后在需   要使用的地方如下语法导入即可...当浏览器向服务端请求一个页面时,Django创建一个HttpRequest对象,该对象包含关于请求的元数据。...10.HttpRequest.user   一个 AUTH_USER_MODEL 类型的对象,表示当前登录的用户。   ...如果用户当前没有登录,user 将设置为 django.contrib.auth.models.AnonymousUser 的一个实例。

    3.4K20

    Django】 开发:补充知识

    count:需要分类数据的对象总数 :分页后的页面总数 :从1开始的range对象, 用于记录当前面码数 每页数据的个数 Paginator方法 page(number) 参数...说明: Page 对象是可迭代对象,可以用 for 语句来 访问当前页面的每个对象 参考文档 https://docs.djangoproject.com/en/2.2/topics/pagination...它将被浏览器用于“另存为…”对话框 对于CSV文件的每一行,调用writer.writerow,传递一个可迭代对象列表或元组。...用户认证 (使用Django认证系统) Django带有一个用户认证系统。...过滤修改为 多个星号,但是用户自定义的视图函数需要用户手动过滤敏感信息 1,视图函数的局部变量 from django.views.decorators.debug import sensitive_variables

    6.4K30

    Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)

    模板遍历复杂数据结构的关键是句点字符  ....为了在Django关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。...{% else %} 请登陆,这里放登陆链接 {% endif %} 自定义标签和过滤器 1、在settings的INSTALLED_APPS配置当前app(即加上当前app的名字,‘app01...’),不然django无法找到自定义的simple_tag. 2、在app创建templatetags模块(模块名只能是templatetags) 3、创建任意 .py 文件,:my_tags.py...(答案是不一定能,有可能找错) Django 模板查找机制: Django 查找模板的过程是在每个 app 的 templates 文件夹找(而不只是当前 app 的代码只在当前的 app 的 templates

    2.6K80

    Django的模板系统

    的模板在进行模板渲染的时候会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全,django担心这是用户添加的数据,比如如果有人给你评论的时候写了一段js代码,这个评论一提交,js...为了在Django关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。     ...,你先知道一下就行了,就像一个我们后台给这个用户的一个通行证,如果你用户没有按照我给你的这个正常的页面来post提交表单数据,或者说你没有先去请求我这个登陆页面,而是直接模拟请求来提交数据,那么我就能知道...六 组件   可以将常用的页面如导航条,页尾信息等组件保存在单独的文件,然后在需要使用的地方,文件的任意位置如下语法导入即可 {% include 'navbar.html' %}   例如:有个如下的导航栏...在setting的INSTALLED_APPS配置当前的app,不然django无法找到自定义的simple_tag 2.在app创建templatetags模块(模块只能是templatetags

    1.7K10

    Python代码安全指南

    评估无法避免,执行命令应避免拼接外部数据,同时进行执行命令的白名单限制。 【必须】过滤传入命令执行函数的字符 程序调用各类函数执行系统命令时,如果涉及的命令由外部传入,过滤传入命令执行函数的字符。...该头用于指示浏览器禁止当前页面在 frame、 iframe、embed 等标签展现,从而避免点击劫持问题。...它有三个可选的值: DENY: 浏览器会拒绝当前页面加载任何frame页面; SAMEORIGIN: 则frame页面的地址只能为同源域名下的页面 ALLOW-FROM origin: 可以定...验证当前用户的登录态 2. 从可信结构获取经过校验的当前请求账号的身份信息(session),禁止从用户请求参数或Cookie获取外部传入不可信用户身份直接进行查询 3....校验当前用户是否具备该操作权限 4. 校验当前用户是否具备所操作数据的权限 5. 校验当前操作是否账户是否预期账户 【建议】及时清理不需要的权限 程序应定期清理非必需用户的权限。

    97920

    后端框架学习-Django

    模型(M)- 编写程序应有的功能,负责业务对象与数据库的映射(ORM)。 视图(V)- 图形界面,负责与用户的交互(页面)。 控制器(C)- 负责转发请求,对请求进行处理。...ORM-创建数据 增删改查 ORM CRUD核心:模型类.管理对象 管理对象 每一个models.Model的模型类,都会有一个objects对象被同样继承下来,这个对象叫做管理对象。...Django提供了Paginator类可以方便的实现分页功能 Paginator类位于’django.core.paginator’模块 paginator对象 负责分页数据整体的管理...对象 Paginator对象属性 count:需要分页的数据对象总数 num_pages:分页后的页面总数 page_range:从1开始的range对象,用于记录当前页码数 per_page:每页数据个数...= paginator.page(页码) page对象属性: object_list:当前页上所有数据对象的列表 number:当前页面的序号,从1开始 paginator:当前page对象相关的Paginator

    9.5K40

    如何使用PythonDjango模板?

    在渲染的过程Django使用上下文数据字典并以它的关键字作为模板的变量名。由于特殊的双花括号语法,在上下文中模板的后端把{{ name }}替换为字面值“Johnny”。...Django会循环遍历像列表一样的可迭代对象,并对每个可迭代对象的项让用户输出模板响应。如果上面的例子列表的内容像下面一样: ? 对应的输出的大概会是这样: ?...这些页面使用相同的CSS(层叠样式表),层叠样式表是定义页面元素外观形状的样式。 想象你被要求管理一个网站,并且你需要创建两个独立的页面。主页看起来像这样: ? 并且在网站背后有一个介绍公司的页面。...你可以将一个大模板拆分成多个更好管理的小片段。 在你网站的不同部分用其中某一个模板片段。你可能有一个模板片段可能只会在几个页面用。...用Django的格式说明符,你可以告诉模板怎样去展示当前时间。想在网站里添加当前的版权年份吗?一点问题都没有! ? 最后需要学习的内建标签是spaceless标签。HTML对空格部分敏感。

    3.9K30

    用Python写了一个合同帐务系统(附源码)

    三、用户登录 1.初始管理员 登录用户名:admin 密码:123456 2.登录成功后进入主页面 四、信息管理 4.1 用户信息 用户信息即本系统使用人员(公司员工)的帐号管理用户默认包含首次登录的...角色: 角色即权限,分为管理员和普通用户 普通用户:不能增加、修改、删除用户,在只在页面右上角个人中心修改自己的密码。 管理员:可以做一切操作。...六、报销管理 报销管理里能操作和显示的都是基于当前操作者(本人)的报销。...报销管理包含“新增报销”和“报销查询”两个部分,其中 新增报销显示的是该用户最近新建的但是尚未经过管理人员(经理、或财务)审批的报销条目。...可以条件过滤查询所有人用的报销。或种条件可以叠加组合进行查询。如果取消条件可以在在各个条件删除或重置。其中重置按键和已报销、未报销为一组,是指删除已报销、未报销的条件约束。

    1.2K20

    37.Django1.11.6文档

    模型作为它的第一个参数,任意数量的关键字参数作为它的第二个参数,它会将这些关键字参数传递给模型管理的get() 函数。...在Django的认证框架只存在一种类型的用户,因此诸如'superusers'或管理员'staff'用户只是具有特殊属性集的user对象,而不是不同类型的user对象。...Web请求的认证 Django使用会话和中间件来拦截认证系统到请求对象。 它们在每个请求上提供一个request.user属性,表示当前用户。 ...ModelAdmin.ordering 设置ordering以指定如何在Django管理视图中对对象列表进行排序。 这应该是与模型的ordering参数格式相同的列表或元组。...列表的每个条目都是表示具有以下密钥的应用程序的dict: app_label:应用程序标签 app_url:管理的应用程序索引的URL has_module_perms:一个布尔值,表示当前用户是否允许显示和访问模块的索引页面

    24.3K80

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

    M全拼为Model,主要封装对数据库层的访问,对数据库的数据进行增、删、改、查操作。 V全拼为View,用于封装结果,生成页面展示的html内容。...apps.py 文件用于配置当前子应用的相关信息。 migrations 目录用于存放数据库迁移历史文件。 models.py 文件用户保存数据库模型类。...定义路由时,通常以斜线/结尾,其好处是用户访问不以斜线/结尾的相同路径时,Django会把用户重定向到以斜线/结尾的路径上,而不会返回404不存在 。...user:请求的用户对象。 path:一个字符串,表示请求的页面的完整路径,不包含域名和参数部分。 encoding:一个字符串,表示提交的数据的编码方式。...设置语言和时间 2、创建超级管理员 python manage.py createsuperuser > 修改密码: > > python manage.py changepassword 用户

    3K40

    关于python开发CRM系统

    角色管理 权限管理 动态菜单 在线交作业 关于表结构 后续完整后补充 关于django的admin 知识点回顾: 使用django的admin的方法: 1、models.py创建好表的类 2、执行...admin的认证功能,所以这个时候如果认证成功得到的是对象 #如果想要获取具体的用户名,可以user.userprofile.name...return redirect("/crm") return render(request,"login.html") 这里需要知道的是authenticate返回的其实是一个用户对象...,即动态添加active 这里可以根据url来设置,因为每个菜单的都是一个a标签而a标签的href属性和当前页面的url是相同的 通过通过在js获取当前的url也就是’{{request.path}...当然也可以通过list_filter实现过滤的搜索的功能 ? 通过search_fields实现关键字搜索 通过list_editable实现对某些字段编辑功能: ?

    3.3K90
    领券