Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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
Python 为什么logged_out.html在django注册中不被覆盖?_Python_Django_Django Templates - Fatal编程技术网

Python 为什么logged_out.html在django注册中不被覆盖?

Python 为什么logged_out.html在django注册中不被覆盖?,python,django,django-templates,Python,Django,Django Templates,我使用内置的django登录和注销。在我的项目/url.py中,我添加了用于登录和注销的url from django.conf.urls import include, url from account import views from django.contrib.auth import views as auth_views from django.contrib import admin urlpatterns = [ url(r'^admin/', include(admin

我使用内置的django登录和注销。在我的项目/url.py中,我添加了用于登录和注销的url

from django.conf.urls import include, url
from account import views
from django.contrib.auth import views as auth_views
from django.contrib import admin
urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$',views.index,name='Index'),
    url(r'^accounts/login/$',auth_views.login,name='login'),
    url(r'^accounts/logout/$',auth_views.logout,name='logout'),
    url(r'^accounts/register/$',views.register,name='register'),
    url(r'^accounts/profile/$',views.profile,name='profile'),    
]
我的帐户应用程序文件夹中有一个模板文件夹。我有这样的目录结构

account
   -templates
      -registration
          -login.html
          -logged_out.html
          -register.html
      -rest_html_files
-rest files
我读过django文档,其中说,对于login(),默认模板是registration/login.html,这在我的项目中运行良好,而logout()默认模板是registration/logged_out.html,如果没有提供任何参数,但只要它是logout按钮(它有一个href={%url'logout%})单击它会重定向到管理员注销页面,而不是我的自定义注销页面。
可能有什么问题???

您可以设置为将其重定向到下一页,如下所示:

url(r'^accounts/logout/$',auth_views.logout, name='logout', 
                           {'next_page': '/path_to_your_page/'})
根据:



django.contrib.admin
应用程序还有一个
注册/注销.html
模板

要确保使用“帐户”应用程序中的模板,请确保它在您的
已安装应用程序设置中位于“django.contrib.admin”上方

INSTALLED_APPS = (
    'account',
    ...
    'django.contrib.admin',
    ...
)

应用程序模板加载器将遍历
已安装的应用程序中的应用程序,以及每个应用程序的模板目录,直到找到匹配的应用程序。因此,如果admin在你的应用程序之上,那么Django将使用来自admin的模板而不是来自你的应用程序的模板。

你能发布视图的代码吗?在这种情况下,视图不必做任何事情,因为我使用的是Django auth。谢谢kushtrimh!但我已经明白了。我所要问的是什么可能是导致此方法无法正常工作的原因。感谢您的回答@Alasdair,但我在问这个问题前几个小时就已经绞尽脑汁了,我的应用程序已安装在已安装的应用程序中。对于您的评论,我已经知道下一个页面属性,我想问的是为什么,如果登录被覆盖,那么为什么注销不以同样的方式工作。仅在
中安装应用程序是不够的。它需要在“django.contrib.admin”之上。您的登录模板当前正在使用,因为管理员应用程序没有
注册/login.html
模板。谢谢!!!很抱歉,我刚才没听懂,而且很抱歉,他们不让我对你的答案投赞成票;-)很高兴它起作用了。不要担心投票结果,一旦你有了更多的声望,你就可以对答案进行投票了。这是一个巨大的难题!对于像我这样的django新手。我打破了我的头几个小时,然后意识到我的自定义应用程序在名单上的最后一个。想知道django文档最好在哪里警告这种行为
INSTALLED_APPS = (
    'account',
    ...
    'django.contrib.admin',
    ...
)