django-userena使用记录
django-userena扩展了django原生的用户系统,提供了注册、登录、修改密码、邮件验证等一系列常用功能。直接使用pip安装即可:pip install django-userena
会自动安装其所需的依赖包,不过个人建议为了更好的定制模板或相关功能,把这个包放到项目目录下当作一个app更方便一些。安装完成后修改settings.py,首先来创建一个app用于扩展用户系统python manage.py startapp accounts
然后修改Models.py来扩展原生用户字段,我这里以添加用户等级为例:
1 | # coding=utf-8 |
接下来修改settings.py,首先把
1 | "django.contrib.sites", |
添加到INSTALLED_APPS中,然后把'django.contrib.sites.middleware.CurrentSiteMiddleware',
添加到MIDDLEWARE_CLASSES中,在django1.7.7中如果不添加和site有关的东西时,userena注册用户会抛出”Site matching query does not exist“异常。最后添加下面的配置:
1 | AUTHENTICATION_BACKENDS = ( |
xxxx根据实际情况修改,和发送验证邮件有关。这些都添加完毕后,执行./manage.py migrate
创建数据库,接下来执行./manage.py check_permissions
否则报错”Permission matching query does not exist“。最后记得添加url
1 | url(r'^accounts/', include('userena.urls')), |
都完成后,运行程序,访问http://127.0.0.1:8000/accounts/signup/
就可以看见注册页面了。
所有html文件以及email模板都在userena/templates/userena
路径下,进行相应定制即可。