修改头像

1、上传头像,我们需要的对它做一个forms验证,编辑users.forms.py

...
from .models import UserProfile class UploadImageForm(forms.ModelForm):
class Meta:
model = UserProfile
fields = ['image']

2、编辑users.views.py

class UploadImageView(LoginRequiredMixin, View):
def post(self, request):
image_form = UploadImageForm(request.POST, request.FILES)
if image_form.is_valid():
pass

3、配置url,编辑users.urls.py

...
from .views import UploadImageView urlpatterns = [
...
url(r'image/upload/$', UploadImageView.as_view(), name='upload_image'),
]

4、编辑前端页面

5、断点调试

我们发现form已经取到上传的图片放到了cleaned_data中,这里面的数据是已经通过验证的。因此我们可以直接把它取出来保存到数据库中

因为我们用的是mode.form,所以我们可以直接保存到数据库,优化代码如下:

最后我们需要返回一个json 信息,因为,这里修改头像是个异步的操作

...
from django.http import HttpResponse class UploadImageView(LoginRequiredMixin, View):
def post(self, request):
image_form = UploadImageForm(request.POST, request.FILES, instance=request.user)
if image_form.is_valid():
image_form.save()
return HttpResponse('{"status":"success"}', content_type='application/json')
else:
return HttpResponse('{"status":"fail"}', content_type='application/json')

  

修改密码

编辑users.views.py

...
import json class UpdatePwdView(LoginRequiredMixin, View):
def post(self, request):
ResetPwd_form = ResetPwdForm(request.POST)
if ResetPwd_form.is_valid():
pwd = request.POST.get('pwd', '')
repwd = request.POST.get('repwd', '')
if pwd == repwd:
user = UserProfile.objects.get(email=request.user.email)
user.password = make_password(pwd)
user.save()
return HttpResponse('{"status":"success"}', content_type='application/json')
else:
return HttpResponse('{"status":"fail", "msg":"密码不一致"}', content_type='application/json')
else:
return HttpResponse(json.dumps(ResetPwd_form.errors), content_type='application/json')

配置url,编辑users.urls.py

...
from .views import UpdatePwdView urlpatterns = [
...
url(r'update/pwd/$', UpdatePwdView.as_view(), name='update_pwd'),
]

编辑前端页面usercenter-base.html

提交地址配置在deco-user.js中

最新文章

  1. [ASP.NET MVC] ASP.NET Identity登入技术应用
  2. android 遇到问题未处理
  3. NYOJ-取石子(六)
  4. Mac OS X 11以上系统的Rootless机制问题
  5. Syntactic_sugar
  6. ASP.NET MVC 音乐商店 - 目录
  7. android插件化-apkplug框架启动-02
  8. Python中的枚举
  9. 移动端布局最佳实践(viewport+rem)
  10. 实现Android Native端爆破源码
  11. 服务器搭建lamp环境
  12. mybatis generator生成文件大小写问题
  13. Googlenet 中1*1 卷积核分析
  14. python文件相关
  15. HTML5学习笔记(二):HTML基础学习之一
  16. WPF tooltip 根据父元素属性决定是否显示
  17. url传多值问题
  18. 腾讯云数据库团队:MySQL5.7 JSON实现简单介绍
  19. Html解析
  20. iPad - 开发(Universal Applications)

热门文章

  1. Ajax缓存问题怎么解决?
  2. 如何记录MySQL执行过的SQL语句
  3. 免费的dns服务器(更换dns服务器有时可以解决某些网站(如爱奇艺访问不了的问题))
  4. POJ3169:Layout(差分约束)
  5. POJ2112:Optimal Milking(Floyd+二分图多重匹配+二分)
  6. BZOJ1040 骑士 基环外向树
  7. cloudera manager 5.3完整卸载脚本
  8. gitlab7.2安装
  9. 前端面试js题
  10. 不谈OI:高二(13)最后一次班班有歌声