自定义django用户模型,使电子邮件成为用户名字段。
django-username-email-fullname的Python项目详细描述
cuser使你可以很容易地使用电子邮件地址作为你的身份证明。 而不是用户名。
cuser是一个自定义django用户模型(扩展了AbstractBaseUser),因此 用起来很费劲。
cuser和vanilla django的唯一区别是电子邮件 地址是^ {TT3}$(用户名不存在)。
cuser支持django 1.8+
为什么使用cuser?
因为你想要django.contrib.auth中的所有内容,除了 username字段,您还希望用户使用电子邮件地址登录。 而且您不想创建自己的自定义用户模型或身份验证 后端。
安装和设置
如果您以前使用过django的默认用户模型, django.contrib.auth.models.User,先跳到注释(然后来 后面)。否则,继续前进!
使用pip install django-username-email-fullname
安装将cuser添加到INSTALLED_APPS设置:
INSTALLED_APPS=[...'cuser',]
指定自定义模型作为项目的默认用户模型 使用设置中的AUTH_USER_MODEL设置。py:
AUTH_USER_MODEL='cuser.CUser'
您应该引用用户而不是直接引用用户 使用django.contrib.auth.get_user_model()
的模型如果使用django的默认AuthenticationForm类,则 强烈建议将其替换为 库瑟。这将使<input>具有其type属性集 到email,浏览器的自动完成功能将建议您发送电子邮件 地址而不是用户名。例如,如果您的项目使用 django的默认视图login,这是您将在 为了利用cuser的AuthenticationForm类:
fromcuser.formsimportAuthenticationFormfromdjango.conf.urlsimportinclude,urlfromdjango.contrib.auth.viewsimportloginurlpatterns=[url(r'^accounts/login/$',login,{'authentication_form':AuthenticationForm},name='login'),url(r'^accounts/',include('django.contrib.auth.urls')),...]
运行迁移。
python manage.py migrate
配置
要覆盖任何默认设置,请创建名为CUSERin的字典 你的settings.py和你想要覆盖的每个设置。例如:
CUSER={'app_verbose_name':'Authentication and Authorization','register_proxy_auth_group_model':True,}
这些是设置:
app_verbose_name(默认值:_("Custom User"))
这控制cuser将用于其AppConfigclass'的值。 verbose_name。
register_proxy_auth_group_model(默认值:False)
当设置为True时,cuser的admin.py将注销django的默认值 Group模型并注册自己的django默认代理模型Group 模型(也称为Group)。如果您希望django的默认值 Group模型将与cuser的^{tt30}出现在管理的同一部分中$ 模型。
注释
如果有引用django的User模型的表,则必须 删除这些表和迁移,然后重新迁移。这将确保 一切都是从一开始就正确设置的。
当您定义一个外键或与^{tt2}的多对多关系时$ 模型,应该使用^{tt10}指定自定义模型$ 设置。
例如:
fromdjango.confimportsettingsfromdjango.dbimportmodelsclassProfile(models.Model):user=models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,)
许可证
在麻省理工学院的许可下发布。有关详细信息,请参见许可证。