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

有没有可能在ModelAdmin中添加按用户的LogEntry过滤的Django模型?

在Django中,可以通过定制ModelAdmin来添加按用户的LogEntry过滤的功能。LogEntry记录了Django admin中对模型的所有操作,包括添加、修改和删除等。

要实现按用户的LogEntry过滤功能,可以按以下步骤操作:

  1. 导入必要的模块和类:
代码语言:txt
复制
from django.contrib import admin
from django.contrib.admin.models import LogEntry
from django.contrib.auth.models import User
from django.contrib.contenttypes.models import ContentType
  1. 创建一个自定义的ModelAdmin类,并继承自原始的ModelAdmin类:
代码语言:txt
复制
class CustomModelAdmin(admin.ModelAdmin):
    def get_queryset(self, request):
        # 获取当前用户的LogEntry集合
        user_log_entries = LogEntry.objects.filter(user=request.user)

        # 获取所有用户执行过的操作的对象类型ID
        content_type_ids = user_log_entries.values_list('content_type_id', flat=True).distinct()

        # 获取所有用户执行过的操作的模型类型
        model_types = ContentType.objects.filter(id__in=content_type_ids)

        # 返回按用户过滤的查询集
        return self.model.objects.filter(content_type__in=model_types)
  1. 注册模型并指定使用自定义的ModelAdmin类:
代码语言:txt
复制
admin.site.register(YourModel, CustomModelAdmin)

以上代码会根据当前登录用户的LogEntry记录来过滤显示在admin页面上的模型对象。该功能可以方便地查看和管理特定用户的操作记录。

请注意,以上代码仅实现了按用户的LogEntry过滤的功能,如果需要使用其他的过滤条件或功能,可以根据实际需求进行扩展。

腾讯云相关产品:在此功能中,暂无特定腾讯云产品推荐。

希望以上答案能够满足您的需求,如有其他问题,请随时提问。

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

相关·内容

Django实践-03模型-02基于admin管理表

Django测试开发-20-settings.pytemplates配置,使得APP下模板以及根目录下模板均可生效 解决django 多个APP时 static文件问题 django.short...运行项目 python manage.py runserver 在浏览器访问 http://127.0.0.1:8000/admin 输入刚才创建超级用户账号admin和密码admin进行登录。...4.注册模型类 我们暂时还没能在admin应用中看到之前创建模型类,为此需要在polls应用admin.py文件对需要管理模型进行注册。...可能大家已经注意到了,刚才在后台查看部门信息时候,显示部门信息并不直观,为此我们再修改admin.py文件,通过注册模型管理类,可以在后台管理系统更好管理模型。...本文是Django模型层models使用过程。

16110

37.Django1.11.6文档

如果不这样做,当表单不小心允许用户设置某些特定字段,特别是有的字段添加到模型时候,将很容易导致安全问题。 这些问题可能在网页上根本看不出来,它与表单渲染方式有关。...您必须确定通过搜索方法实现查询集更改是否可能在结果引入重复项,并在返回值第二个元素返回True。...根据您ModelAdmin定义,模型每个多对多字段将由标准HTML < select multiple> t4>,水平或垂直过滤器或raw_id_admin小部件。 ...LogEntry.get_change_message() Django新功能1.10。 将change_message格式化并转换为当前用户语言。 ...例如,如果你打算提供一个更加复杂导出函数,你会希望让用户选择一种格式,以及可能在导出包含一个含有字段列表。

24.3K80
  • Python:Django搭建博客

    media 这两个文件夹 配置 pycharm 运行参数 配置完成后点击 pycharm 运行按钮,在浏览器输入 127.0.0.1:8000 访问,出现小火箭升空表示 Django...安装成功, 访问 Django-admin 界面, 在浏览器输入 127.0.0.1:8000/admin,看到 Django 管理,需要输入用户名密码,输入用户名密码后可以跳转到 Django 管理页面表示...OK 用 django-admin 管理 数据库迁移完成会在 post 应用下生成一个迁移文件,接下来在 django-admin 中注册模型,便于我们用 django-admin 管理 /post... 将重复出现部分提取出来,这个根据自己模版抽取,每个都不相同,静态文件加载 如果一次没有提取好,可以慢慢一点点抽取,对于一个后端程序员来说这个是一个慢工出细活过程。...可以写一个简单视图,然后开着 Django 一边抽取一遍调试 接下来实现首页试图 首先在 urls.py 配置路由 DjangoBlog/u rls.py ... from blog import

    56500

    Django3.2边学边记—Adimn站点管理

    准备工作 创建管理员用户名和密码:  1 python manage.py createsuperuser   根据提示创建用户名 密码 在admin.py中注册模型类 1234567 from django.contrib...ModelAdmin类可以控制不同模型在Admin界面展示方式,主要包括在列表页展示方式、添加修改页展示方式 上文中展示了TestAdmin类一种注册方法,还有一种方法,就是使用装饰器注册,...控制显示列,Django 会尝试按照这个顺序解释 list_display 每个元素: 一个模型字段。 一个可调用对象。 一个代表 ModelAdmin 属性字符串。...,如下截图所示: list_filter 应是一个列表或元组,参数字段可以是模型字段,包括外键字段(注意list_display是不能直接接收外键字段),会将对应字段值列出来,一般用于快速过滤有重复值字段...我理解就是分组整体匹配(Django3.2新增),例如,如果用户搜索 "john winston" 或 'john winston',Django 会做相当于这个 SQL  WHERE 子句: 1

    1.3K30

    django 1.8 官方文档翻译:7-2 管理操作

    在这些例子Django管理后台可以让你实现和注册“操作” —— 仅仅只是一个以已选中对象集合为参数回调函数。 在Django自带管理页面中都能看到这样例子。...Django在所有的模型自带了一个“删除所选对象”操作。...例如,下面是 django.contrib.auth app 在Django’s创建用户模型: 警告 “删除所选对象”操作由于性能因素使用了QuerySet.delete(),这里有个附加说明:它不会调用你模型...也就是说,异常处理和使用django.contrib.admin.ModelAdmin.message_user()可以在响应展示用户友好问题描述。...例如,如果你打算提供一个更加复杂导出函数,你会希望让用户选择一种格式,以及可能在导出包含一个含有字段列表。

    71920

    Django3.2边学边记—Adimn站点管理

    准备工作 创建管理员用户名和密码:  1 python manage.py createsuperuser   根据提示创建用户名 密码 在admin.py中注册模型类 1234567 from django.contrib...ModelAdmin类可以控制不同模型在Admin界面展示方式,主要包括在列表页展示方式、添加修改页展示方式 上文中展示了TestAdmin类一种注册方法,还有一种方法,就是使用装饰器注册,...控制显示列,Django 会尝试按照这个顺序解释 list_display 每个元素: 一个模型字段。 一个可调用对象。 一个代表 ModelAdmin 属性字符串。...用 list_filter 来激活管理更改列表页面右侧侧栏过滤器,如下截图所示: list_filter 应是一个元素列表或元组,会将对应字段值列出来,一般用于快速过滤有重复值字段 12...我理解就是分组整体匹配(Django3.2新增),例如,如果用户搜索 "john winston" 或 'john winston',Django 会做相当于这个 SQL  WHERE 子句: 1

    1.2K00

    35.Django2.0文档

    在这个模式, Model 代表数据存取层,View 代表是系统中选择显示什么和怎么显示部分,Controller 指的是系统根据用户输入并视需要访问模型,以决定使用哪个视图那部分。      ...C:根据用户输入委派视图部分,由 Django 框架根据 URLconf 设置,对给定 URL 调用适当Python 函数  由于 C 由框架自行处理,而 Django 里更关注模型(Model...在 MTV 开发模式:    M:代表模型(Model),即数据存取层。...另外一种过滤日期方式是使用date_hierarchy选项,如: class BookAdmin(admin.ModelAdmin): list_display = ('title','publisher...我们可以通过使用ModelAdmin子类fields选项来改变它: class BookAdmin(admin.ModelAdmin): list_display = ('title','publisher

    11.3K100

    Django 上传图片和Admin站点5.2

    上传图片 当Django在处理文件上传时候,文件数据被保存在request.FILES FILES每个键为name 注意:FILES只有在请求方法为...,默认Admin被启用 1.创建管理员用户名和密码 python manage.py createsuperuser 然后按提示填写用户名、邮箱、密码 2.在应用内admin.py文件完成注册,就可以在后台管理维护模型数据...项中加入django.contrib.admin,Django就会自动搜索每个应用admin模块并将其导入 ModelAdmin对象 ModelAdmin类是模型在Admin界面表示形式 定义:定义一个类...,继承于admin.ModelAdmin,注册模型时使用这个类 class HeroAdmin(admin.ModelAdmin): ......): list_display = ['hName', 'hContent'] list_filter 右侧栏过滤器,对哪些属性值进行过滤 列表类型 只能接收字段 class HeroAdmin

    47230

    小手一抬,就能用 Python Django 实现一个微型博客系统

    二、Python Django 微型博客 ==================== 通过简单操作,就可以在 Django 实现一个博客 应用 2.1 用模板生成文件 ----------- 进入到...'blog', # 这里是非常重要 ] 在 Django ,如果希望应用模型、静态文件、模板这些内容,需要在 INSTALLED_APPS 添加对应应用目录,如果没有设置,应用不会进行加载。...,实现一个模型类,需要继承自 models.Model 类,该类用于进行数据库数据和 Python 对象之间转换操作。...] 该命令用于检查 blog 模型文件变更,由于在上文我们创建了一个 Blog 类,所以 models.py 文件被修改,当执行上述命令时,会输出如下内容。...OK 2.3 创建管理后台 ---------- 下面通过简单步骤实现对 blog 表管理,Django 自带用户认证系统,通过命令 python manage.py migrate 即可实现。

    38930

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

    用户模型Django提供了一个默认用户模型,包含用户名、密码和电子邮件等字段。 3.2 用户、组和权限管理 用户管理:在Django Admin,可以创建、编辑和删除用户。...3.3 自定义用户模型 Django允许开发者自定义用户模型以满足特定需求。 替换默认用户模型:在settings.py设置AUTH_USER_MODEL指向自定义用户模型。...自定义字段:可以在自定义用户模型添加额外字段,如手机号码、地址等。 自定义认证后端:可以编写自定义认证后端来处理特定认证逻辑。...自定义密码重置:可以实现自定义密码重置流程,包括发送重置邮件和处理重置请求。 通过这一章学习,你将能够掌握Django认证系统,并学会如何管理用户、组和权限,以及如何自定义用户模型用户界面。...4.2 使用QuerySet进行数据查询 QuerySet API:DjangoQuerySet API提供了丰富查询方法,如过滤、排序、聚合等。

    16910

    python Django 管理站点1.3

    为此,Django会根据定义模型类完全自动地生成管理模块 使用django管理 创建一个管理员用户 python manage.py createsuperuser,按提示输入用户名、邮箱、密码 启动服务器...、时区 LANGUAGE_CODE = 'zh-Hans' TIME_ZONE = 'Asia/Shanghai' 向admin注册booktest模型 打开booktest/admin.py文件,注册模型...BookInfo数据进行增删改查操作 问题:如果在str方法返回中文,在修改和添加时会报ascii错误 解决:在str()方法,将字符串末尾添加“.encode('utf-8')” 自定义管理页面...Django提供了admin.ModelAdmin类 通过定义ModelAdmin子类,来定义模型在Admin界面的显示方式 class QuestionAdmin(admin.ModelAdmin...,有两种注册方式 方式一:与BookInfo模型类相同 方式二:关联注册 按照BookInfor注册方式完成HeroInfo注册 接下来实现关联注册 from django.contrib

    49520

    Django管理后台技巧分享之实例关系搜索,autocomplete_fields字段使用

    最近博客在做新功能,就是增加了两个模型,分别是专题和主题,主要就是用来对文章进行系列划分,在这个设计过程,文章和主题会进行一个关联,当主题数量很多时候,文章在选择要关联主题时候会非常难选。...我希望在文章选择主题时候可以输入关键字来搜过滤,这样可以减少可选项。基于这个需求,我又重新去看了一下Django关于admin教程,终于找到了方法,现在分享一下。...问题现象 首先来看一下这个问题现象,其实这个在Django模型设计里面非常常见,就是当模型之间有关联时候,给一个模型实例选择关联模型实例时候,如果对方数量很多,会导致查找非常麻烦。...一般遇到这种筛选,在前端里面都是可以进行输入来进行过滤,所以我就查看了 Django文档 找到了可以添加这个功能方法,就是autocomplete_fields字段。...总结 本篇介绍了Djangoadmin.ModelAdmin中使用autocomplete_fields字段来给关联模型添加过滤搜索。

    61120

    使用 Django admin 定制后台,丰富自己网站后台管理系统

    admin 注册 首先,如果要在 Django 后台显示应用模型,必须在应用所在 admin.py 文件中注册模型。...3步: 导入 admin 及需要注册模型(这里是 Author) 创建一个模型管理类,继承 admin.ModelAdmin,这个类参数后面详细介绍 注册模型管理类 使用装饰器来注册 其实上面的过程可以把第...ModelAdmin 详细参数 查看源码 为了更好了解 Django 管理类有哪些基本属性,我们可以去 Django 源码查找这个类源代码,看一下它有哪些默认属性和方法。...list_filter 属性是过滤器,可以用来筛选,设置了这个之后可以在后台侧边栏看到可以用来筛选字段列表,效果如图所示: filter_horizontal 这个属性非常有用,它可以给模型多选字段添加左右选框...,可以自定义进行过滤,具体过滤方式可以看代码。

    3.1K10

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

    Django管理应用程序 Django管理应用程序可以使用模型自动构建可用于创建、查看、更新和删除记录站点区域。这可以在开发过程节省大量时间,使测试模型和查看是否有正确数据变得容易。...Django项目只建议用于内部数据管理(也就是说,仅适用于组织管理员或内部人员),因为以模型为中心方法不一定是所有用户最佳界面,并且暴露了许多关于模型不必要细节。...在同一目录,manage-Py创建一个超级用户。系统将提示输入用户名、电子邮件地址和强密码。...python3 manage.py runserver 高级配置 Django使用注册模型信息创建基本管理站点: 每个模型都有一个单独记录列表,由__ str__()方法创建并链接到详细视图/表单以进行编辑字符串...BookInstance模型 在BookInstance模型,我们有相关书籍(信息名称、打印和id),它们将可用(状态、due_back)。

    1.7K20

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

    BlogAdmin(admin.ModelAdmin): #listdisplay设置要显示在列表字段(id字段是Django模型默认主键) list_display...唯一区别就是 这种方法 是登录http://ip/admin/ 站点和用户组在一起 ? 而第一种方法是分开。 5.通过当前登录用户过滤显示数据 官方文档介绍: ?...4.设置只读字段 在使用admin时候,ModelAdmin默认对于model操作只有增加,修改和删除,但是总是有些字段是不希望用户来编辑。...,使之显示过滤数据 下面的代码表示,car字段会根据当前登录用户显示此用户所拥有的车 1 2 3 4 5 class MyModelAdmin(admin.ModelAdmin.../ 默认django会自动根据我们定义模型生成form给admin使用,使用到这个form地方分别是change和add时候。

    4K40

    Django admin 一些有用设置

    有时容易忘记写注册语句,或者模型很多,不容易对应。 还有一种方式是用装饰器,该方法是Django1.7版本新增功能: ?...import Blog    #Blog模型管理器 @admin.register(Blog) class BlogAdmin(admin.ModelAdmin):     #listdisplay设置要显示在列表字段...一般ManyToManyField多对多字段用过滤器;标题等文本字段用搜索框;日期时间用分层筛选。 过滤器如果是外键需要遵循这样语法:本表字段__外键表要显示字段。...唯一区别就是 这种方法 是登录http://ip/admin/  站点和用户组在一起 ? 而第一种方法是分开。 5.通过当前登录用户过滤显示数据 官方文档介绍: ?...4.设置只读字段  在使用admin时候,ModelAdmin默认对于model操作只有增加,修改和删除,但是总是有些字段是不希望用户来编辑

    2.6K70

    自定义 Django 管理界面多对多内联模型

    问题背景在 Django 管理界面用户可以使用内联模型来管理一对多关系。但是,当一对多关系是多对多时,Django 提供默认内联模型可能并不适合。...例如,如果存在一个产品模型和一个发票模型,并且产品和发票之间是多对多关系,那么在发票管理界面Django 会显示一个表格,其中包含所有产品及其对应复选框。...在 formset_factory() 函数,指定 model 参数为内联模型模型类,并指定 fields 参数为内联模型需要显示字段。...这两个方法分别负责判断用户是否有添加和修改内联模型对象将新内联模型类添加到 ModelAdmin。在 ModelAdmin inlines 属性,添加新内联模型类。...return qs.filter(is_deleted=False)# 将自定义内联模型类添加到 ModelAdminadmin.site.register(Invoice, InvoiceAdmin

    11510

    django后台管理-admin

    0922自我总结 django后台管理-admin 一.模型注册 admin.py 注册方式一: #在对于注册appadmin文件中导入模型然后注册模型 admin.site.register(导入模型类...) 注册方式二该方法是Django1.7版本新增功能: from django.contrib import admin from blog.models import Blog #Blog模型管理器...#listdisplay设置要显示在列表字段(id字段是Django模型默认主键) list_display = ('id', 'caption', 'author', 'publish_time...一般ManyToManyField多对多字段用过滤器;标题等文本字段用搜索框;日期时间用分层筛选。 过滤器如果是外键需要遵循这样语法:本表字段__外键表要显示字段。...): list_display = ('first_name', 'last_name', 'colored_name') 注意看上面代码,是写在models里,而不是adminModelAdmin

    88010

    django优雅实现软删除,支持Admin和DRF软删除

    简而言之: drf找不到删除数据,admin需要全部数据 drf和admin删除数据都是软删除 解决方案 DRF Django Manager 赋予了 Django模型(Model)操作数据库能力...也就是如:Book.objects.all()objects。有没有想过它到底是什么? 显然,默认模型Manager并不能解决我们问题,所以我们需要自定义模型Manager。...可以发现,由于模型Manager加持,直接把is_deleted数据一并过滤了。但是我们并不想如此。 所以第一反应,就是去注册模型地方,重写模型查询。...@admin.register(Book) class BookAdmin(admin.ModelAdmin): pass 这是原来模型注册,笔者进入admin.ModelAdmin翻阅源码...由于我们已经在模型层通过Manager直接改变了最初数据过滤样子,这里怎么重写也是无事于补。 于是我在想,那就在定义一个模型管理器,在Admin中使用这个管理器不就好了?

    2.3K40
    领券