1. 程式人生 > >django 使用者註冊時使用modelform上傳頭像並顯示在頁面

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"/>