django使用wangeditor报错302重定向到admin解决方法

django在使用wangeditor富文本时,在非admin页面中调用wangeditor/img_upload/接口时返回302状态码,跳转到了admin登录页面,具体错误是strict-origin-when-cross-origin

第一感觉是权限问题,不然不会跳到admin登录页面

顺着wangeditor源码找,发现wangeditor.urls.py中有一个staff_member_required()方法,百度了一下这个方法是限制只有后台权限的用户才能登录(django自带员工识别装饰器,识别只有is_staff 的用户才能登录后台系统),如后台首页登录限制,无论是在网址栏上直接输入网址还是前端跳转,只要不是员工都无法访问到后台。

from django.contrib.admin.views.decorators import staff_member_required  # 验证用户是否已登录
from . import views
try:
    from django.conf.urls import url
    urlpatterns = [
        url(r'^img_upload/$', staff_member_required(views.img_upload), name='img_upload'),
        url(r'^video_upload/$', staff_member_required(views.video_upload), name='video_upload')
    ]
except ImportError:
    from django.urls import path
    urlpatterns = [
        path('img_upload/', staff_member_required(views.img_upload), name='img_upload'),
        path('video_upload/', staff_member_required(views.video_upload), name='video_upload')
    ]

解决方法就是重写wangeditor的urls.py文件,由于只有两个路径,直接放到项目目录的urls.py文件中重写了

from django.urls import path
import wangeditor.views as wang_view    # 这里用于重写wangeditor的url

urlpatterns = [
    # 富文本
    # path('wangeditor/', include('wangeditor.urls')),    不使用原来的路由
    path('wangeditor/img_upload/', wang_view.img_upload, name='img_upload'),
    path('wangeditor/video_upload/', wang_view.video_upload, name='video_upload'),
]

if settings.DEBUG or True:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

去掉了staff_member_required()方法的管理员验证,前端就可以直接使用wangeditor/img_upload/添加图片了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值