如何知道用户单击注销后是否到达登录页面? Django的

时间:2018-06-24 07:28:42

标签: django django-templates django-views

我正在使用django的内置身份验证模块进行用户身份验证。

urls.py

url(r'^accounts/logout/', auth_views.logout, kwargs={'next_page': reverse_lazy('login')}),
url(r'^accounts/login/', auth_views.login, name='login', kwargs={'redirect_authenticated_user': True,"authentication_form":CustomAuthForm}),

注销后,用户将立即重定向到login页。但是我需要在登录页面上向用户显示“ 已退出!”消息。

我怎么知道用户是否单击 注销 链接进入 登录 页面,或者他/她直接访问了 登录 (在这种情况下,我不会显示任何消息)。

2 个答案:

答案 0 :(得分:0)

您可以在此处使用类似Django messages framework的声音-在logout.post中,您需要添加一条消息messages.success(request, 'Successfully logged out.'),该消息将由您的登录模板呈现。

答案 1 :(得分:0)

您可以从Django使用The messages framework,如下所示:

from django.contrib.messages import get_messages

def logout(request, ...):

    # Logout the user
    # Add a logout message
    messages.add_message(request, messages.SUCCESS, "signed out!")

    return HttpResponseRedirect(...)

def login(request, ...):
    storage = get_messages(request)
    for message in storage:
        msg = message
        break
    return render(request, 'your_app/login.html', {'message': msg})

然后在您的login.html模板中,检查消息是否不是“无”并显示它。 将此插入您希望显示消息的位置

{% if message %}
<div>
   {{ message }}
</div>
{% endif %}