django 用户注册时使用modelform上传头像并显示在页面

在写用户注册时,除了添加用户名,密码,昵称,邮箱等,再添加使用modelform上传头像的功能,并且在登录(django已经为我们写好了登录功能的全部代码)之后头像显示在页面

1.服务器端安装pillow

pip install pillow


2.

添加图片字段到用户models.py

headshot = models.ImageField(upload_to='avatar/%Y/%m/%d/',default='default.jpg', verbose_name='头像')

3.

在settings.py 增加图片存储路径,同时创建目录

可以随意命名。意思是遇到'/uploads/'这个url,就要去下面这个路径找到媒体文件

MEDIA_URL = '/uploads/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')


4.

项目urls.py添加如下static

from django.conf import settings

from django.conf.urls.static import staticurlpatterns = [

         ........

    ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)



5.

form表单提交方法为post,且含有enctype="multipart/form-data"属性


6.view函数里接收

如果有文件上传一定要在后面加上request.FILES

form = RegisterForm(request.POST, request.FILES)


7.

在前端模板展示:    

<img src="{{ user.headshot.url }} " height="40" width="40"/>






展开阅读全文

没有更多推荐了,返回首页