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

Django 如何使用我自己的应用程序的内置管理员登录面板登录用户?,django,authentication,Django,Authentication,Django带有内置的管理页面,该页面有自己的登录面板 大多数Django站点都实现了自己的登录面板。这是有道理的,因为这给了他们很大的灵活性。但对于某些应用程序来说,使用现有的管理员登录面板而不是实现自己的应用程序就足够了 当然,我可以将用户重定向到管理员登录页面。但是,登录后,用户会自动重定向到主管理页面,我希望他被重定向到我的应用程序的 而是一页 如何将Django内置的管理员登录面板用于我自己的应用程序?通过重定向到应用程序的页面而不是管理员站点,可以将管理员登录面板无缝集成到应用程序中

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

大多数Django站点都实现了自己的登录面板。这是有道理的,因为这给了他们很大的灵活性。但对于某些应用程序来说,使用现有的管理员登录面板而不是实现自己的应用程序就足够了

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


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

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

Django管理站点提供登录和注销的默认视图,如文档所示:

  • 管理员:登录
  • admin:注销
两个视图都支持
next
URL参数,该参数允许您指定在完成流程步骤后将用户重定向到哪个页面。这允许您指定自己的应用程序页面,而不是管理站点

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

示例模板片段 对于此Django模板,我们假设您的应用程序名为
my\u app
,此模板是名为
my\u 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 %}
{%if request.user.is_authenticated==False%}

您当前未登录。点击
登录。

{%else%} 您以用户身份登录:{{request.user.username}

{%endif%}