Python 为什么logged_out.html在django注册中不被覆盖?
我使用内置的django登录和注销。在我的项目/url.py中,我添加了用于登录和注销的urlPython 为什么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
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',
...
)