Django带有内置的管理页面,该页面具有其自己的登录面板。
[大多数Django网站都实现了自己的登录面板。这是有道理的,因为它给了他们很多灵活性。但是,对于某些应用程序,使用现有的管理员登录面板而不是自己实施即可。
当然,我可以将用户重定向到管理员登录页面。但是,登录后,该用户将自动重定向到主管理页面,我希望他被重定向到我的应用程序's页。
如何为自己的应用程序使用Django的内置管理员登录面板?
通过重定向到应用程序的页面而不是管理站点,可以无缝地将管理员登录面板集成到您的应用程序中。
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 %}