django>=1.11的自定义用户模型,支持多种用户类型
django-users2的Python项目详细描述
django的自定义用户模型>;=1.5,支持多种用户类型和 很多其他很棒的实用程序(主要是从其他项目借用)。如果你是 使用django<;1.11,请安装v0.2.1或更早版本(pip install django-users2<;=0.2.1)。
功能
- 电子邮件作为身份验证的用户名(赤骨可扩展用户模型)
- 支持多种用户类型(使用Awesome Django模型实用程序)
- 在syncdb/迁移之后自动创建超级用户(在初始开发阶段非常方便)
- 内置电子邮件/密码验证器(有许多可定制的选项)
- 预先打包了所有模板,包括django.contrib.auth中视图所需的其他模板(用于无痛注册过程)
文档
快速启动
安装django-users2
pip install django-users2
将django-users2添加到已安装的应用程序中
INSTALLED_APPS = ( ... 'django.contrib.auth', 'django.contrib.sites', 'users', ... )
设置您的认证用户模型设置为使用users.User:
AUTH_USER_MODEL = 'users.User'
完成此操作后,运行migrate命令安装此包使用的模型:
python manage.py migrate
将django-users2url添加到项目的urlconf中,如下所示:
urlpatterns = patterns('', ... url(r'^accounts/', include('users.urls')), ... )
它为django-users2中的视图以及django.contrib.auth中的几个有用视图(例如登录、注销、密码更改/重置)设置url模式
配置
设置USERS_VERIFY_EMAIL = True为注册用户启用电子邮件验证。
创建新的User对象时,如果其is_active字段设置为False,则会生成激活密钥,并向用户发送电子邮件,其中包含单击以激活帐户的链接:
USERS_VERIFY_EMAIL = False
单击激活链接时,新帐户将被激活(即is_active字段设置为True);之后,用户可以登录。或者,您可以在成功激活后自动登录用户:
USERS_AUTO_LOGIN_ON_ACTIVATION = True
这是用户注册后激活其帐户的天数:
USERS_EMAIL_CONFIRMATION_TIMEOUT_DAYS = 3
在syncdb之后自动创建django superuser,默认情况下,在settings.DEBUG = True时启用此选项。
您可以通过重写USERS_SUPERUSER_EMAIL和USERS_SUPERUSER_PASSWORD设置来自定义电子邮件/密码(强烈建议):
USERS_CREATE_SUPERUSER = settings.DEBUG USERS_SUPERUSER_EMAIL = 'superuser@djangoproject.com' USERS_SUPERUSER_PASSWORD = 'django'
通过启用隐藏(使用css)蜜罐字段,防止spambots自动注册:
USERS_SPAM_PROTECTION = True
通过设置USERS_REGISTRATION_OPEN = False:
USERS_REGISTRATION_OPEN = True
验证程序的设置,用于检查用户指定密码的强度:
# Specifies minimum length for passwords: USERS_PASSWORD_MIN_LENGTH = 5 #Specifies maximum length for passwords: USERS_PASSWORD_MAX_LENGTH = None< P>可选的复杂性验证程序,检查密码强度:
USERS_CHECK_PASSWORD_COMPLEXITY = True
指定密码必须包含的不同集合中的字符数:
USERS_PASSWORD_POLICY = { 'UPPER': 0, # Uppercase 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'LOWER': 0, # Lowercase 'abcdefghijklmnopqrstuvwxyz' 'DIGITS': 0, # Digits '0123456789' 'PUNCTUATION': 0 # Punctuation """!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~""" }
允许/禁止使用来自特定域的电子邮件地址进行注册:
USERS_VALIDATE_EMAIL_DOMAIN = True
不允许的域列表:
USERS_EMAIL_DOMAINS_BLACKLIST = []
例如,USERS_EMAIL_DOMAINS_BLACKLIST = ['mailinator.com']将阻止所有访问者使用mailinator.com电子邮件地址进行注册。
允许的域列表:
USERS_EMAIL_DOMAINS_WHITELIST = []
例如,USERS_EMAIL_DOMAINS_WHITELIST = ['ljworld.com']只允许用户注册ljworld.com域。