1

image.png
image.png
image.png
模拟(先拷贝一个副本,对副本进行操作):

在blog/user/models.py中创建User(AbstracUser)类,创建属性昵称,然后在里面创建它的元类
image.png
然后再mysite/settings中添加字段:
AUTH_USER_MODEL = 'user.User'
image.png
因为我们已经改了User了,所以需要对里面用到的User进行修改:
blog/models.py中:
image.png
再comment/models.py中做同样的修改:
image.png
同样:likes/models.py
image.png
对于user/forms.py中的修改:
image.png
user/views.py同样
image.png
迁移数据库:(注意这里是再原文件副本中迁移)
此时会出现数据库迁移冲突问题:
image.png
处理:将blog/migrations和其他所有的migrations中的迁移表都删除,然后重新迁移应用:

创建缓存表:python manage.py createcachetable

创建超级管理员:python manage.py createsuperuser

运行:此时会没有任何一条博文,因为被我们删了

再user/中创建admin.py管理后台来管理user:

编写代码:
image.png
修改user/models.py来将昵称英文名换成中文名:
image.png
效果:
image.png
因为提交后显示用户身份状态数据显示不全,所以再admin.py中增加list_display:
image.png
效果:
image.png
总结:
image.png
参考于djangoproject网站
这里使用新的模型拓展方法:简单修改的少
image.png
1)创建自定义模型:user中新建models.py文件
image.png
然后迁移应用

再在user中增加一个admin文件,用于显示用户信息,
image.png
在后台用户管理中想要看到用户name等相关信息的设置:

将djangoproject.com中的以下代码拷贝到user/admin.py中:
image.png
然后进行修改:
image.png
运行重启:
image.png
因为昵称还是Nickname,想要改一下:

修改user/models.py中:
image.png
然后在列表中显示昵称:修改admin.py文件
image.png
将nickname显示为中文:
image.png
效果:
image.png
image.png


功能增加:在下拉框中增加一个后台管理按钮能够直接跳转到后台管理界面
image.png
修改templates中的base.html:
image.png
修改login.html和register.html,使其注册完自动跳转到首页,登陆后自动跳转到首页

但是后台管理不应该人人可以登录:必须是用户或者是超级管理员才可以:
image.png


笨小孩
20 声望3 粉丝

你,要怎样度过这一生?有的人二十岁已经死了,有的人七十岁还在发现生命的可能,有人终其一生,不知道自己要的是什么;有人简单执拗,终其一生;忠于自我未必有结果,坚持努力也不一定换来成功,但有天,回望过...