Django - error_403() 得到了一个意外的关键字参数“异常”
Posted
技术标签:
【中文标题】Django - error_403() 得到了一个意外的关键字参数“异常”【英文标题】:Django - error_403() got an unexpected keyword argument 'exception' 【发布时间】:2018-10-11 19:01:23 【问题描述】:当不允许用户看到实例的内容时,当PermissionDenied异常被抛出,而不是转发给404.html模板,就报错了。
详细视图:
class OccurrenceDetail(OccurrenceModel, BaseDetailViewWithLogin):
permission_required = ('occurrences.see_occurrence')
def get_object(self, queryset=None):
perm = self.request.user.has_perm(self.permission_required)
obj = super(OccurrenceDetail, self).get_object(queryset=queryset)
if not perm:
raise PermissionDenied()
return obj
网址:
handler403 = 'apps_core.core.views.error_403'
观看次数:
def error_403(request):
data =
return render(request,'errors/403.html', data)
【问题讨论】:
遇到的错误可能是有用的信息 【参考方案1】:403
error view 需要第二个参数,即引发的异常。
要解决它,您可以将代码更改为:
def error_403(request, exception):
...
或更一般的东西
def error_403(request, *args, **kwargs):
...
【讨论】:
如何将权限代码传递给在权限错误时调用的函数error_403
中的上下文,以便在错误页面中显示这些代码?谢谢。
@shaan 我找不到在模板中显示缺少权限引发PermissionDenied
异常的方法。
谢谢先生。我离开了网格(sometime)所以很晚才看到你的回复。接受这一点真的令人沮丧。我也尝试过使用 Django 会话,但不知何故它非常有问题,数据会间歇性地显示。所以接下来我想为什么不使用 Django permission_denied_message
。但在这里,我也遇到了重大问题。如果你能抽出一些时间,你会检查我的查询here吗?非常感谢。以上是关于Django - error_403() 得到了一个意外的关键字参数“异常”的主要内容,如果未能解决你的问题,请参考以下文章
React.js 使用 JQuery 发布 Django 得到 403