首页 > 解决方案 > 如何仅为 Django allauth 注册页面返回 404?

问题描述

我对 Django 相当陌生,到目前为止我所做的所有工作都是关于模型/视图/视图集的。我正在开发的网站包含 Django allauth 进行身份验证。我已经成功地编辑/样式化了登录/注销模板,但是该页面将由在管理部分创建的凭据而不是自己注册的人访问,因此注册页面是不必要的。我只想在有人登陆注册页面时显示 404 页面。我已经从其他模板中删除了所有指向注册页面的链接。

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

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

标签: djangodjango-urlsdjango-allauth

解决方案


您根本不能在您的网址中使用注册页面。

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

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


推荐阅读