DjangoChinaOrg / Django-China-API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

用户个人资料修改

opened this issue · comments

API:/users/
HTTP method: patch

用户修改头像或者昵称

昵称修改现在就可以做到,头像修改我需要去研究一下是否需要一个单独的API,因为同时传递json和图片感觉不太可行。

rest 的 serializer 应该已经帮我们处理了吧?只要前端通过 patch 方法把所需要的图片传过来。应该不需要单独的 API,只要对 user 模型进行 partial_update 就可以了。

后期不考虑其他对象存储托管图片么?
如果要考虑的话,建议上传图片单独为一个接口,传完后返回对应链接,保存资料时直接保存图片链接数据。这样后期迁移对象存储也方便扩展。
毕竟是前后端分离的模式。

目前的模式应该就是这样的。用户模型中保存的是用户上传头像的路径。如果以后图片迁移的话只要根据路径找到图片,上传到其它存储的地方,然后修改链接应该就可以了。

不过好像头像确实需要一个单独的 API 来上传。

1.图片路径存储问题
不是应该用户模型里存储的是图片相对路径,前缀网址是根据static file的设置来改变的吗(local和production有不同的static file的设置)?

2.修改头像是否需要单独的API
前端可以用form data同时传图片和其他字段,对用户资料进行同时修改

这里可能可以不用单独的API,因为一般来说这个是分两步完成的:

  1. 用户上传头像并预览效果,这里取决于我们是自己管理上传文件还是用别的CDN服务来管理,但是这里用户应该是可以反复上传查看效果的
  2. 用户点击确定,把链接更改成自己满意的头像。这里其实只是修改链接,文件的上传已经完成,所以用现有的PATCH端口就可以完成修改。

这里同样对前端的逻辑有一定要求,我查看了react-china的相关部分,也是由类似逻辑构成的。