所有网站几乎都有一个最基本的功能:注册和登录(废话!)。所以我们建完网站后,第一件事要加上去的功能也是登录和注册。
Django-users2
登录和注册这么基本的东西,django里面当然也有。但是我们不用,我们用别人已经最好的django-users2这个包,这样我们需要做的事情就更少了。记住,工程师思维,能用别人的,就不要自己造。
百度搜索“pypi django-users2”。把这个包下载下来
点击右侧原谅色按钮,下载tar.gz包,然后解压,你会发现里面有个users文件夹,这就是我们想要的东西
而今迈步从头越
我们这次重新建一个项目(怎么又重建……),django-admin startproject,然后把刚才解压出来的users文件夹复制进去。
这些操作重复了一遍又一遍,不要烦!重复才能学会。接下来,在内层主文件夹里的settings.py里的INSTALLED_APPS列表里注册用户账户系统users(否则不能用)
千万不要忘记底下那一行AUTH_USER_MODEL = ,那是把django的user模型换成users包里面的用户模型。不换的话users虽然安装成功了,依然用的是原版django用户模型。那就白干了。
migrate
接下来,用python manage.py migrate更新用户模型
并创建超级管理员
这些都完成之后,我们runserver,访问127.0.0.1:8000/admin,登录进去
进去找到user模型,点开它。如果出现如下画面(只有邮箱和active两列),说明我们的user模型替换成功了,如果还有first name, last name等其他列,说明替换失败,退回去重做!
更改新的user模型
虽然我们替换成功,但是一个用户账户只有email一个信息绝对是不够用的,所以我们要向现在的user模型里扩充其他东西。也就是说我们要更改新的user模型
找到users文件夹里的models.py打开它,找到现在还是空着的User模型(一般在最底下),如图
加入你想要的模型,如图
以后的model都这样修改和添加。做完这些之后,我们再次更新数据库(注意操作不一样)首先python manage.py makemigrations
然后再python manage.py migrate,如图
这些都做完以后,我们再为user模型添一些小功能,如从生日导出年龄,如图所示
为了实现age方法,写出birthday_filter函数
最后,打开admin.py找到class UserAdmin(BaseUserAdmin):,作如下修改(注意上面的fields和下面的list_display)
这些都改过以后,runserver,再次访问到User,会发现有变化
这样的User模型,是不是不那么简陋了?是不是能用了?
BVDN,傻子也能建网站