如何使用我自己的应用程序的内置管理员登录面板登录用户?

问题描述 投票:1回答:1

Django带有内置的管理页面,该页面具有其自己的登录面板。

[大多数Django网站都实现了自己的登录面板。这是有道理的,因为它给了他们很多灵活性。但是,对于某些应用程序,使用现有的管理员登录面板而不是自己实施即可。

当然,我可以将用户重定向到管理员登录页面。但是,登录后,该用户将自动重定向到主管理页面,我希望他被重定向到我的应用程序's页。

如何为自己的应用程序使用Django的内置管理员登录面板?

django authentication
1个回答
0
投票

通过重定向到应用程序的页面而不是管理站点,可以无缝地将管理员登录面板集成到您的应用程序中。

Django管理站点提供了用于登录和注销的默认视图,如here所述:

  • admin:login
  • admin:logout

两个视图都支持next URL参数,该参数可让您指定在完成处理步骤后将用户重定向到哪个页面。这使您可以指定自己的应用程序页面,而不是管理站点。

请注意,此方法有一个警告:管理员登录面板仅适用于具有职员角色的用户。

示例模板摘要

对于此Django模板,我们假设您的应用程序名为my_app,并且此模板是名为my_app:index的视图的一部分。

{% if request.user.is_authenticated == False %}
    <p>
        You are currently not logged in. Click 
        <a href="{% url 'admin:login' %}?next={% url 'my_app:index' %}">here</a>
         to login.
    </p>

{% else%}
    <p>
        You are logged in as user: <b>{{ request.user.username }}</b> 
        <a href="{% url 'admin:logout' %}?next={% url 'my_app:index' %}">[Logout]
        </a>
    </p>    

{% endif %}
© www.soinside.com 2019 - 2024. All rights reserved.