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%}