【发布时间】:2016-03-21 18:19:51
【问题描述】:
我正在使用 Django 功能进行注销,但它没有显示我的模板。这里的代码:
Views.py
class Logout(View):
#import pdb; pdb.set_trace()
template_name = ['cost_control_app/logout.html']
def get(self, request, *args, **kwargs):
return render(request, self.template_name)
def logout_view(request):
logout(request)
print ("ya")
return render(request, self.template_name)
Urls.py
urlpatterns = patterns(
'',
url(r'^logout/$', views.Logout.as_view(), name = "logout"),
)
还有模板:
logout.html
{% extends 'base_cost_control.html' %}
{% block contentsubbase %}
<head>
<body>
<div>
<h2> Logged out succefully </h2>
<br>
<a href="{% url 'cost_control_app:login' %}">Iniciar sesión</a>
</div>
</body>
</head>
{% endblock contentsubbase %}
在我的主页中,我使用一个 href 层来指向那个 url:
<a href="{% url 'cost_control_app:logout' %}">Logout</a>
但它不起作用,它只会将我重定向到一个名为注销的完整空白页面,如果我返回浏览器,我仍然登录。
【问题讨论】:
-
template_name不应该是一个列表,你也不需要那里的def logout_view(request):块 -
mmm 也不起作用 =(
-
在您的模板中,我看到您将
body块包含在<head>..</head>中。body必须在head之外。在您的base_cost_control.html中,您是否定义了一个名为contentsubbase的块?最后,没有真正将用户注销的逻辑,它只是现阶段的一个模板 -
还可以查看docs.djangoproject.com/en/1.9/topics/auth/default/… 的文档,您可以使用内置视图和完整示例
-
感谢大家的回答,但这不是问题....跟踪我发现函数 def logout_view(request): 它没有返回...我做错了什么??