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

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

  1. 在你的Admin后台的自定义视图或方法中,首先导入 from django.contrib.auth.decorators import login_requiredfrom 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获取当前登录用户的用户名,并将其传递到模板中进行显示或其他操作。

相关推荐
认真的薛薛3 分钟前
数据库-sql语句
数据库·sql·oracle
爱学英语的程序员12 分钟前
面试官:你了解过哪些数据库?
java·数据库·spring boot·sql·mysql·mybatis
·云扬·1 小时前
MySQL Redo Log落盘机制深度解析
数据库·mysql
用户982863025681 小时前
pg内核实现细节
数据库
wxin_VXbishe1 小时前
C#(asp.net)学员竞赛信息管理系统-计算机毕业设计源码28790
java·vue.js·spring boot·spring·django·c#·php
码界筑梦坊1 小时前
330-基于Python的社交媒体舆情监控系统
python·mysql·信息可视化·数据分析·django·毕业设计·echarts
飞升不如收破烂~2 小时前
Redis 分布式锁+接口幂等性使用+当下流行的限流方案「落地实操」+用户连续点击两下按钮的解决方案自用总结
数据库·redis·分布式
workflower2 小时前
业务需求-假设场景
java·数据库·测试用例·集成测试·需求分析·模块测试·软件需求
亓才孓2 小时前
[JDBC]基于三层架构和MVC架构的JDBCTools
数据库
IT邦德2 小时前
RPM包快速安装Oracle26ai
数据库·oracle