Django PermissionRequiredMixin - return 404 错误而不是 403

Django PermissionRequiredMixin - return 404 error instead of 403

在基于 class 的视图中使用 PermissionRequiredMixin 时,我正在尝试 return 404 而不是 403,我不希望用户看到 403,因为这意味着url 存在

class SomeobjectCreateView(PermissionRequiredMixin, CreateView):
    model = Someobject
    success_url = reverse_lazy('some_url')
    fields = ['field1', 'field2', ...]
    template_name = 'someobjects/someobject_new.html'
    permission_required = 'someobjects.permission'

有什么想法吗?

一种方法是自定义 403 模板

project/urls.py

handler403 = 'your_app.views.handler403'

现在您可以在 403 视图中呈现 404 模板。

def handler403 (request, *args, **kwargs):
     return render(request, '404.html')