[英]How to add 'logout' function to a Admin site in Django
在我的Django項目中,我創建了一個單獨的admin.py,並在該文件中擴展了AdminSite類,如下所示:
class UserAdminSite(AdminSite):
site_header = "Admin Site"
site_title = "Manage User and Groups"
login_form = AuthenticationForm
def has_permission(self, request):
return request.user.is_active and request.user.is_admin_user
但是后來我發現,在該管理站點中,左上角沒有退出鏈接。 如何將其添加到管理站點?
如果您要擴展AdminSite,則應該已經具有注銷功能,
https://github.com/django/django/blob/master/django/contrib/admin/sites.py#L349 :
@never_cache
def logout(self, request, extra_context=None):
"""
Logs out the user for the given HttpRequest.
This should *not* assume the user is already logged in.
"""
from django.contrib.auth.views import logout
defaults = {
'current_app': self.name,
'extra_context': dict(self.each_context(request), **(extra_context or {})),
}
if self.logout_template is not None:
defaults['template_name'] = self.logout_template
return logout(request, **defaults)
如果您查看管理站點的base.html,它將使用名稱空間admin:logout查找url。
https://github.com/django/django/blob/master/django/contrib/admin/templates/admin/base.html#L46 :
<a href="{% url 'admin:logout' %}">{% trans 'Log out' %}</a>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.