当不允许用户查看实例的内容时,抛出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
Run Code Online (Sandbox Code Playgroud)
网址:
handler403 = 'apps_core.core.views.error_403'
Run Code Online (Sandbox Code Playgroud)
观看次数:
def error_403(request):
data = {}
return render(request,'errors/403.html', data)
Run Code Online (Sandbox Code Playgroud)
的403错误视图期望的第二参数,它是凸起的例外。
要解决此问题,您可以将代码更改为:
def error_403(request, exception):
...
Run Code Online (Sandbox Code Playgroud)
或更一般的东西
def error_403(request, *args, **kwargs):
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
461 次 |
| 最近记录: |