模拟(先拷贝一个副本,对副本进行操作):
在blog/user/models.py中创建User(AbstracUser)类,创建属性昵称,然后在里面创建它的元类
然后再mysite/settings中添加字段:
AUTH_USER_MODEL = 'user.User'
因为我们已经改了User了,所以需要对里面用到的User进行修改:
blog/models.py中:
再comment/models.py中做同样的修改:
同样:likes/models.py
对于user/forms.py中的修改:
user/views.py同样
迁移数据库:(注意这里是再原文件副本中迁移)
此时会出现数据库迁移冲突问题:
处理:将blog/migrations和其他所有的migrations中的迁移表都删除,然后重新迁移应用:
创建缓存表:python manage.py createcachetable
创建超级管理员:python manage.py createsuperuser
运行:此时会没有任何一条博文,因为被我们删了
再user/中创建admin.py管理后台来管理user:
编写代码:
修改user/models.py来将昵称英文名换成中文名:
效果:
因为提交后显示用户身份状态数据显示不全,所以再admin.py中增加list_display:
效果:
总结:
参考于djangoproject网站
这里使用新的模型拓展方法:简单修改的少
1)创建自定义模型:user中新建models.py文件
然后迁移应用
再在user中增加一个admin文件,用于显示用户信息,
在后台用户管理中想要看到用户name等相关信息的设置:
将djangoproject.com中的以下代码拷贝到user/admin.py中:
然后进行修改:
运行重启:
因为昵称还是Nickname,想要改一下:
修改user/models.py中:
然后在列表中显示昵称:修改admin.py文件
将nickname显示为中文:
效果:
功能增加:在下拉框中增加一个后台管理按钮能够直接跳转到后台管理界面
修改templates中的base.html:
修改login.html和register.html,使其注册完自动跳转到首页,登陆后自动跳转到首页
但是后台管理不应该人人可以登录:必须是用户或者是超级管理员才可以:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。