Django1.10 扩展User属性增加头像上传功能(django,imagefiled,user,开发技术)

时间:2024-05-03 09:14:32 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

Django自带的User模型没有头像和电话这两项属性,因此需要通过扩展User达到我们想要的效果,根据官方的文档,扩展新字段到User只需要用one-to-one模型即可。


一、创建一个APP

pythonmanage.pystartappCustomUser


二、在models里面创建用户模型,使用one-to-one关联User

from__future__importunicode_literalsfromdjango.dbimportmodels#Createyourmodelshere.fromdjango.contrib.auth.modelsimportUserclassMyUser(models.Model):user=models.OneToOneField(User)phone=models.CharField(max_length=20,null=True,blank=True)avatar=models.ImageField(upload_to='photo',null=True,blank=True)


三、增加admin配置,admin后台可以填写这两个新字段:

fromdjango.contribimportadminfromdjango.contrib.auth.adminimportUserAdminfromdjango.contrib.auth.modelsimportUserfromCustomUser.modelsimportMyUser#DefineaninlineadmindescriptorforEmployeemodel#whichactsabitlikeasingletonclassEmployeeInline(admin.StackedInline):model=MyUsercan_delete=Falseverbose_name_plural='myuser'#DefineanewUseradminclassUserAdmin(UserAdmin):inlines=(EmployeeInline,)#Re-registerUserAdminadmin.site.unregister(User)admin.site.register(User,UserAdmin)

admin后台效果:

Django1.10 扩展User属性增加头像上传功能



四、修改settings User指向:

AUTH_PROFILE_MODULE='CustomUser.MyUser'


五、生成数据库:

pythonmanage.pymakemigrationsCustomUserpythonmanage.pymigrations


六、上传头像需要media配置,故settings需增加配置:

MEDIA_URL='/media/'MEDIA_ROOT=os.path.join(BASE_DIR,'media')

在manage.py同一层新建media目录


七、配置urls.py:

fromdjango.confimportsettingsfromdjango.conf.urls.staticimportstaticurlpatterns+=static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)


八、template上使用头像:

<ulclass="navnavbar-navnavbar-right"><liclass="dropdownnavbar-user"><ahref="javascript:;"class="dropdown-toggle"data-toggle="dropdown"><imgsrc="{{request.user.myuser.avatar.url}}"alt=""/><spanclass="hidden-xs">{{request.user.username}}</span><bclass="caret"></b></a><ulclass="dropdown-menuanimatedfadeInLeft"><liclass="arrow"></li><li><ahref="javascript:;">编辑资料</a></li><li><ahref="javascript:;">重置密码</a></li><liclass="divider"></li><li><ahref="{{url('logout')}}">退出系统</a></li></ul></li></ul>



 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Django1.10 扩展User属性增加头像上传功能的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:HTML&CSS基础学习笔记6-文本操作标签下一篇:

7 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18