Django - PermissionRequiredMixin - Возвращать 'permission_denied_message' в текущем представлении, вместо 403 страницы?

Django version 3.0.5

Я хочу использовать PermissionRequiredMixin в моем представлении для отображения баннерное сообщение так же, как я бы использовал SuccessMessageMixin.

Например, если пользователь пытается удалить объект, а у него нет прав, permission_denied_message по существу будет рассматриваться как сообщение об ошибке и отображается в текущем представлении как баннерное сообщение.

Возможно ли это вообще?

код, который у меня сейчас есть, не работает - он всегда перенаправляет на страницу 403. см. ниже:

class DocDeleteView(PermissionRequiredMixin, SuccessMessageMixin, DeleteView):
    model = SlateDoc
    success_url = reverse_lazy('slatedoc-list')
    success_message = "SlateDoc was deleted!"

    permission_required = ('slatedoc.delete_slatedoc')
    raise_exception = True
    permission_denied_message = "Permission Denied"

    def delete(self, request, *args, **kwargs):
        if self.has_permission() is False: 
            messages.error(self.request, self.permission_denied_message)
        else: 
            self.object = self.get_object()
            self.object.soft_delete()
            messages.success(self.request, self.success_message)
            return HttpResponseRedirect(self.get_success_url())
Вернуться на верх