django>=1.11的自定义用户模型,支持多种用户类型

django-users2的Python项目详细描述


http://img.shields.io/travis/mishbahr/django-users2.svg?style=flat-squareLatest VersionDownloadsLicensehttp://img.shields.io/coveralls/mishbahr/django-users2.svg?style=flat-square

django的自定义用户模型>;=1.5,支持多种用户类型和 很多其他很棒的实用程序(主要是从其他项目借用)。如果你是 使用django<;1.11,请安装v0.2.1或更早版本(pip install django-users2<;=0.2.1)。

功能

  • 电子邮件作为身份验证的用户名(赤骨可扩展用户模型)
  • 支持多种用户类型(使用Awesome Django模型实用程序)
  • 在syncdb/迁移之后自动创建超级用户(在初始开发阶段非常方便)
  • 内置电子邮件/密码验证器(有许多可定制的选项)
  • 预先打包了所有模板,包括django.contrib.auth中视图所需的其他模板(用于无痛注册过程)

文档

完整的文档位于https://django-users2.readthedocs.org

快速启动

  1. 安装django-users2

    pip install django-users2
    
  2. 将django-users2添加到已安装的应用程序中

    INSTALLED_APPS = (
        ...
        'django.contrib.auth',
        'django.contrib.sites',
        'users',
        ...
    )
    
  3. 设置您的认证用户模型设置为使用users.User

    AUTH_USER_MODEL = 'users.User'
    
  4. 完成此操作后,运行migrate命令安装此包使用的模型:

    python manage.py migrate
    
  5. 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_EMAILUSERS_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域。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
GridLayout不工作的java问题   java Restlet请求对象不包含身份验证信息   java使用Cucumber为每个正在运行的线程创建一个TestNG runner类   java在平面文件中存储并跟踪它们?   类Lcom/google/firebase/FirebaseApp中没有虚拟方法zzbzo()Z;或者它的超类   java如何在安卓中创建字符串模式   可从Java访问的树莓PI传感器   java 50+GB分隔文件中的大致行数   是否有Java进程内数据库,允许从多表虚拟机访问?   当我使用ArrayList时,HashMap中的Java ArrayList会导致HashMap中的数据被删除。去除   如何将值存储在最佳java集合结构中   java消息Servlet。servlet appServlet的init()引发异常   java正在使用Spring引导生成空日志文件   c#在访问实例变量时使用this关键字是否更有效?   java JScrollPane滚动到最后添加的行   java Vertx抛出IllegalStateException:响应已被写入   java Liferay以编程方式更改portlet列   java下载单个s3对象并将它们合并到单个文件中   java spark数据帧将JSON转换为ORC满足“列模糊异常”