我正在使用 Django=1.6.1。
目前在我的项目中,成功管理登录后,管理系统将我带到管理仪表板(即:localhost:8000/admin/)。从这里我可以访问我的大部分应用程序,如用户、类别、组等。
90% 的时间我想访问用户管理页面(即 localhost:8000/admin/my_project/users/)。因此我试图找到一种方法将管理员登录重定向到管理员用户页面而不是仪表板。我怎样才能做到这一点?
我不知道这是否是解决这个问题的正确方法,但这就是我解决问题的方法。
我创建了一个子类AdminSite
called CustomAdminSite
并覆盖login()
使用 REDIRECT_FIELD_NAME 接受重定向 URL(即使用“下一个”隐藏字段选项)。
class CustomAdminSite(AdminSite):
@never_cache
def login(self, request, extra_context=None):
"""
Displays the login form for the given HttpRequest.
"""
from django.contrib.auth.views import login
context = {
'title': _('Log in'),
'app_path': request.get_full_path(),
REDIRECT_FIELD_NAME: settings.ADMIN_LOGIN_REDIRECT_URL,
}
context.update(extra_context or {})
defaults = {
'extra_context': context,
'current_app': self.name,
'authentication_form': self.login_form or AdminAuthenticationForm,
'template_name': self.login_template or 'admin/login.html',
}
return login(request, **defaults)
site = CustomAdminSite()
在 urls.py 中
admin.site.login = path.to.custom.site.login
在设置.py
ADMIN_LOGIN_REDIRECT_URL = '/admin/my_project/users/'
P.S:如果有更好的方法,请告诉我:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)