从django管理界面以任何用户身份登录,完成后切换回
django-su的Python项目详细描述
从django管理界面以任何用户身份登录,完成后切换回
作者是Adam Charnock,一些伟大的 contributors。
安装
从github签出django_su,或使用pip:安装
pip install django-su
将django_su添加到INSTALLED_APPS中。确保在django.contrib.admin之前放上:
INSTALLED_APPS=(...'django_su',# must be before ``django.contrib.admin``'django.contrib.admin',)
将SuBackend添加到AUTHENTICATION_BACKENDS:
AUTHENTICATION_BACKENDS=(...'django_su.backends.SuBackend',)
更新您的urls.py文件:
urlpatterns=[url(r'^su/',include('django_su.urls')),...]
应该就是这样!
请参阅example应用程序。此应用程序用于手动测试 这个软件包的功能。这也是一个很好的例子。
django-su需要django 1.5或更高版本。
外部依赖项(可选,但建议)
以下应用程序是可选的,但会增强用户体验:
- “login su”表单将使用django-form-admin
- 用户选择小部件将使用django-ajax-selects
请注意,django-ajax-selects需要以下设置:
AJAX_LOOKUP_CHANNELS={'django_su':dict(model='auth.user',search_field='username')}
配置(可选)
您可以在settings.py
中设置各种可选配置选项# URL to redirect after the login.# Default: "/"SU_LOGIN_REDIRECT_URL="/"# URL to redirect after the logout.# Default: "/"SU_LOGOUT_REDIRECT_URL="/"# A function specifying the permissions a user requires in order# to use the django-su functionality.# Default: NoneSU_LOGIN_CALLBACK="example.utils.su_login_callback"# A function to override the django.contrib.auth.login(request, user)# view, thereby allowing one to set session data, etc.# Default: NoneSU_CUSTOM_LOGIN_ACTION="example.utils.custom_login"
用法
在管理界面中查看用户并查找新的“登录名” 右上角的按钮。
一旦你进入了用户,你可以退出你的网站。 在浏览器中导航到/su/的原始用户。如何
如何在与其他用户连接时通知超级用户
此选项警告超级用户在使用另一个用户时 最初登录。要激活此选项,请执行:
将django_su.context_processors.is_su添加到TEMPLATE_CONTEXT_PROCESSORS:
TEMPLATE_CONTEXT_PROCESSORS=(...'django_su.context_processors.is_su',)
在您的base.htmlincludesu/is_su.htmlsnippet中:
{%include"su/is_su.html"%}
如何将django su用于自定义用户模型(auth_user_model)
django su应该使用自定义用户模型正常工作。然而, 您的admin.py文件中的modeladmin需要进行如下调整:
# Within your admin.py filefromdjango.contribimportadminfromdjango.contrib.auth.adminimportUserAdminfrom.importmodels@admin.register(models.CustomUser)classCustomUserAdmin(UserAdmin):# The following two lines are needed:change_form_template="admin/auth/user/change_form.html"change_list_template="admin/auth/user/change_list.html"
这确保django管理员将使用正确的模板自定义 您的自定义用户模型。
学分
这个应用程序是由adam charnock组装的,但主要是基于想法、代码和评论:
- http://bitkickers.blogspot.com/2010/06/add-button-to-django-admin-to-login-as.html
- http://copiousfreetime.blogspot.com/2006/12/django-su.html
django su使用seed打包。