Django自带的Admin后台中如何获取当前登录用户

在Django的Admin后台中,可以通过 request.user来获取当前登录的用户对象。下面是获取当前登录用户的方法:

  1. 在你的Admin后台的自定义视图或方法中,首先导入 from django.contrib.auth.decorators import login_required和 from django.contrib.admin.views.decorators import staff_member_required,这些装饰器用于确保只有登录的用户和管理员可以访问相关视图。
  2. 在你的视图或方法中,使用装饰器修饰函数。例如,使用 @login_required装饰器可以确保只有登录的用户才能访问该视图。
  3. 在函数中,你可以通过 request.user来获取当前登录的用户对象。例如,可以使用 request.user.username来获取当前登录用户的用户名。

下面是一个示例代码,演示了如何在Django的Admin后台中获取当前登录用户:

复制代码
from django.contrib.auth.decorators import login_required
from django.contrib.admin.views.decorators import staff_member_required
from django.contrib import admin
from django.shortcuts import render

@admin.site.admin_view
@staff_member_required
def my_custom_view(request):
    # 确保只有管理员才能访问该视图
    # 并且只有登录的用户才能访问该视图

    # 获取当前登录用户的用户名
    username = request.user.username

    # 其他自定义逻辑...

    return render(request, 'admin/my_custom_view.html', {'username': username})

在上面的代码中,@staff_member_required装饰器确保只有管理员可以访问 my_custom_view视图,而 @login_required装饰器确保只有登录的用户可以访问该视图。然后,可以使用 request.user.username获取当前登录用户的用户名,并将其传递到模板中进行显示或其他操作。

相关推荐
catoop7 小时前
API Key 设计与安全生成方案:结构拆解、数据库设计与 Java 实现
java·数据库·安全
Web极客码7 小时前
我用 Claude 分析 Redis 哨兵日志,实现跨机房数据不一致自动对齐
数据库·redis·php
库库的数据库笔记8 小时前
国产信创数据库的MySQL兼容性深度对比解析
大数据·数据库·mysql·oceanbase·政务
姚远Oracle ACE8 小时前
为什么无法连接到 PostgreSQL?
数据库·postgresql
ss2738 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 22 PostgreSQL实例与集群
数据库·笔记·postgresql
ss2738 小时前
AI时代首先数据库-PostgreSQL实战笔记 | 21 PostgreSQL进程与内存架构介绍
数据库·笔记·postgresql
Henry-SAP10 小时前
SAP PP模块全景概览
数据库
喜欢吃豆10 小时前
Better Auth 深度解析:从用户认证到企业级身份基础设施
数据库·架构·权限·多租户
其实防守也摸鱼11 小时前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全