Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为Django allauth注册页面返回404?_Django_Django Urls_Django Allauth - Fatal编程技术网

如何为Django allauth注册页面返回404?

如何为Django allauth注册页面返回404?,django,django-urls,django-allauth,Django,Django Urls,Django Allauth,我是Django的新手,到目前为止我所做的所有工作都是关于模型/视图/视图集的。。我正在使用的站点包含Django allauth以进行身份验证。我已经成功地编辑/设置了登录/注销模板的样式,但是该页面将被在管理部分创建的获得凭据的人访问,而不是自己注册-因此注册页面是不必要的。只要有人登陆注册页面,我就会显示404页面。我已经从其他模板中删除了指向注册页面的所有链接 简言之,当某人点击/accounts/signup/时,我如何将其重定向到Django默认页面 到目前为止,我的尝试都是围绕着编

我是Django的新手,到目前为止我所做的所有工作都是关于模型/视图/视图集的。。我正在使用的站点包含Django allauth以进行身份验证。我已经成功地编辑/设置了登录/注销模板的样式,但是该页面将被在管理部分创建的获得凭据的人访问,而不是自己注册-因此注册页面是不必要的。只要有人登陆注册页面,我就会显示404页面。我已经从其他模板中删除了指向注册页面的所有链接

简言之,当某人点击/accounts/signup/时,我如何将其重定向到Django默认页面


到目前为止,我的尝试都是围绕着编辑url.py文件,以包含类似于
路径(“帐户注册”,未找到页面)
(在顶部导入后)或该行的其他操作。我可能错过了一些非常简单的事情,因为我一直有点沮丧。。。我还没有发现任何堆栈溢出,当用户导航到allauth帐户页面时,有人想要404。

您不能在URL中使用注册页面

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


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

为了自动为找不到的url提供404页面,请创建一个404视图,然后在主项目url.py中创建以下代码

用于重定向使用


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

我是一个noob,忘记了python文件(url.py)将逐行计算,我在列出
path('accounts/signup/',page_not_found')
之后列出了
path('accounts/',include('allauth.url')))
因此它找到的是默认路径条目,而不是我的。感谢您的回复,我已经通读了所有这些内容,并快速创建了404视图。我仍然没有点击404视图,因为我在路径列表的底部列出了它,django在到达我的路径之前从
path('accounts/',include('allauth.url'))
中找到了默认路径条目。别动,我知道这会是件愚蠢的事。我选择这个作为最佳答案,因为它包括链接和代码示例。我认为“不在我的URL中使用注册页面”意味着我必须为我想要的每个allauth页面创建一个单独的路径条目?这可能是另一种方法。
handler404 = 'mysite.views.my_custom_page_not_found_view'
from django.views.generic.base import RedirectView
    url('/accounts/signup/', RedirectView.as_view(url='/', permanent=False),name='index')