I tried a minimalistic django implementation of generic views to upload profile pictures.
views.py
class UpdateProfile(UpdateView): form_class =
The problem is in your template. You haven't set enctype, so request.FILES will always be empty. It should be:
enctype
request.FILES
<form action="" enctype="multipart/form-data" method="post">{% csrf_token %}