如何 return 仅 Django allauth 注册页面的 404?

How to return a 404 for just Django allauth signup page?

我是 Django 的新手,到目前为止我所做的所有工作都是使用 models/views/viewsets.. 我正在处理的网站采用 Django allauth 进行身份验证。我已成功 edited/styled login/logout 模板,但该页面将由获得在管理部分创建的凭据的人访问,而不是自行注册 - 因此注册页面是不必要的。我只想在有人登陆注册页面时显示一个 404 页面。我已经从其他模板中删除了指向注册页面的所有链接。

简而言之 - 当有人点击 /accounts/signup/ 时,我如何将他们重定向到 Django 默认值 page_not_found?

到目前为止,我的尝试围绕着编辑 URLs.py 文件以包含类似 path('account_signup', page_not_found) 的内容(在顶部导入之后),或者对该行进行一些其他操作。我可能错过了一些非常简单的东西,因为我有点沮丧......而且我没有发现任何堆栈溢出,当用户导航到 allauth 帐户页面之一时,有人想要 404。

您可以不使用网址中的注册页面。

另一方面,使用 createsuperuser 创建用户是不好的做法,因为默认情况下他们将拥有足够的权限,甚至可以登录到管理员并编辑内容。正确的做法是使用您想要的某种方法创建一个用户,并赋予他们权限。

最后一个将允许您在注册视图中使用装饰器,该装饰器只允许在您拥有具有特定权限的帐户而不是任何用户的情况下访问该页面。返回 404 没有意义。

为了自动为未找到的 404 页面提供服务器 url,创建一个 404 视图,然后在主项目 urls.py 中有以下代码 Read the Official docs

handler404 = 'mysite.views.my_custom_page_not_found_view'

用于重定向使用 Redirect View in django docs

from django.views.generic.base import RedirectView
    url('/accounts/signup/', RedirectView.as_view(url='/', permanent=False),name='index')

请注意,他们是 404 页面,供开发人员在 django 中构建,但是一旦您在生产应用程序的设置中启用 debug=False,它就不可见了,