一个django应用程序,允许您让用户使用他们的电子邮件地址而不是用户名
django-email-login的Python项目详细描述
目标
此应用程序的目标是轻松地转换django的身份验证系统,以允许 使用电子邮件地址而不是用户名登录。这应该在 管理和外部。因此,电子邮件地址必须是唯一的。
用户的用户名将是其电子邮件地址的哈希值。意思是 没有,它将隐藏在管理变更列表视图中。
安装
使用pip install django-email-login安装或从BitBucket hg clone https://bitbucket.org/tino/django-email-login签出并运行python setup.py install。
用法
将'email_login'附加到INSTALLED_APPS设置中
将'email_login.auth_backend.EmailBackend'作为第一个插入 AUTHENTICATION_BACKENDS设置元组。
在根目录urls.py后面添加以下内容:
# Insert email_login overrides from email_login import useradmin, adminsite site = adminsite.EmailLoginAdminSite() # duplicate the normal admin's registry until ticket #8500 get's fixed site._registry = admin.site._registry
而不是使用:
# Uncomment the next line to enable the admin: (r'^admin/', include(admin.site.urls)),
使用:
# Uncomment the next line to enable the admin: (r'^admin/', include(site.urls)),
在根目录中包含管理员urls.py。
要在管理员之外使用登录,请添加:
(r'^account/', include('email_login.urls')),
给你的urls.py
注意
你的管理帐户需要有一个电子邮件地址,否则你将不会 能够登录!
注意
管理员将在记录的右上角显示用户名 在用户中,如果用户没有名字。如果你想超越它,超越- 使用admin/base.html模板。
与django用户创建一起使用
如果要将此应用程序与django-user-creation一起使用,则 必须为User创建自己的ModelAdmin。您可以通过添加 useradmin.py文件到您的项目,包含以下内容:
from django.contrib import admin from django.contrib.auth.models import User from user_creation.forms import EmailAccountCreationForm from email_login.useradmin import EmailLoginAdmin class MyUserAdmin(EmailLoginAdmin): add_form = EmailAccountCreationForm add_fieldsets = ( (None, { 'classes': ('wide',), 'fields': ('email', 'password1', 'password2', 'email_user')} ), ) admin.site.unregister(User) admin.site.register(User, MyUserAdmin)
并将import useradmin行添加到urls.py之后 上面描述的覆盖。