You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django导入错误:无法从django.contrib.auth.decorators导入staff_member_required

Django导入错误:无法从django.contrib.auth.decorators导入staff_member_required

嘿,我之前也碰到过这个坑!这其实是Django版本对应的导入路径搞混了,别慌,咱们一步步解决:

首先得明确:staff_member_required这个装饰器并不在django.contrib.auth.decorators模块里——在大部分Django版本(尤其是4.0之前的版本)中,它属于django.contrib.admin.decorators模块。

解决方案1:修正导入路径

把你原来的导入语句拆分调整,改成这样:

from django.contrib.auth.decorators import login_required, user_passes_test
from django.contrib.admin.decorators import staff_member_required

改完之后重启服务器,应该就能正常导入使用了。

解决方案2:自定义等价装饰器(兼容性更强)

如果你不想依赖admin模块的装饰器,也可以用auth模块自带的user_passes_test自己实现一个功能完全一致的版本:

from django.contrib.auth.decorators import login_required, user_passes_test

# 自定义staff_member_required装饰器,效果和官方一致
def staff_member_required(view_func):
    return user_passes_test(lambda user: user.is_staff)(view_func)

这个自定义版本不挑Django版本,兼容性拉满。

额外小检查:确认你的Django版本

你可以在终端跑这个命令看看当前环境的Django版本:

python -m django --version

如果你的版本是Django 4.0及以上,那staff_member_required确实应该在auth.decorators里,这种情况下可能需要再确认下环境依赖是否真的装对了(不过你说已经重装过环境,大概率还是版本低于4.0的情况)。

备注:内容来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 19:58:12