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获取当前登录用户的用户名,并将其传递到模板中进行显示或其他操作。

相关推荐
NineData4 小时前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算
赵渝强老师7 小时前
【赵渝强老师】PostgreSQL中表的碎片
数据库·postgresql
全栈老石11 小时前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
倔强的石头_1 天前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤3 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
markfeng84 天前
Python+Django+H5+MySQL项目搭建
python·django
爱可生开源社区4 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1775 天前
《从零搭建NestJS项目》
数据库·typescript
加号35 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql