Привет:
1) Добавляешь в модель поле хранения изображения, например ImageField:
avatar = models.ImageField(upload_to='', blank=True, null=True, help_text="Идеальный размер 150 на 150 пикселей",)
2) Если формы автоматически создаются из модели, то это поле уже появилось, если формы руками собираешь, то получаешь что-то по типу в файле forms.py:
class Profile_Form(forms.Form):
avatar = forms.ImageField(label='Загрузить Аватар', required=False)
myself = forms.CharField(....)
myoffer = forms.CharField(...)
3) Прописываешь в settings.py локацию хранения файла, например:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
4) Добавляешь в саму html-форму обозначение, что ты с неё можешь брать мультимедиа-файлы:
<form action="/update_profile{{ useritem.id }}" method="post" enctype="multipart/form-data">
5) Добавляешь граб изображения в обработчеке формы.
6) Решаешь проблему с тем, чтобы все загруженные файлы имели разные имена, так как по дефолту имя файла будет одно и тоже. Я например, использовал хеш логина юзера и его даты.
Но вообще лучше документацию джанги поднять, там есть свои нюансы.