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

Django出现PermissionDenied has no attribute set_cookie报错如何解决

Django PermissionDenied报错解决方案

问题根因

Django视图要求返回HttpResponse类或其子类的实例,你当前直接返回了PermissionDenied类本身:

  • PermissionDenied属于Django内置异常类,不属于Http响应类,没有Http响应必须的set_cookie方法,Django处理响应调用该方法时就会触发报错。

修复方案

方案1:抛出异常(符合Django默认设计,推荐)

将return改为raise触发异常,Django会自动捕获异常并生成403响应返回:

if not exist:
    raise PermissionDenied

方案2:返回403响应实例

如果需要用返回的形式实现,改用HttpResponseForbidden响应类即可,它是HttpResponse的子类,符合视图返回要求:

  1. 先导入响应类:
from django.http import HttpResponseForbidden
  1. 修改代码:
if not exist:
    return HttpResponseForbidden()

内容的提问来源于stack exchange,提问作者Sr coder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:06:00