Я обновляю некоторые поля в модели из файла views.py. Все остальные поля корректно обновляются при использовании
Profile.objects.filter(id=user_profile.id).update(
bio=bio,
city=city,
date_of_birth=dob,
profile_pic=profile_pic,
gender=gender
)
Только
, profile_pic = models.ImageField(blank=True)
не обновляется. Странно то, что когда я проверяю свою модель Profile
из admins.py, она показывает имя файла, который я загрузил, но мой файл не отображается в моем каталоге /media
( куда я загружаю все свои изображения)
views.py
def edit_submit(request):
if request.method == 'POST':
profile_pic = request.POST.get('profile_pic')
bio = request.POST.get('bio')
city = request.POST.get('city')
dob = request.POST.get('dob')
gender = request.POST.get('gender')
user_profile = Profile.objects.get(user=request.user)
Profile.objects.filter(id=user_profile.id).update(
bio=bio,
city=city,
date_of_birth=dob,
profile_pic=profile_pic,
gender=gender
)
return HttpResponseRedirect(reverse('profile', args=[user_profile.id]))
Вот так я управляю своими медиа-файлами в settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
Я думаю, что только текст хранится в ImageField, и изображение не загружается в каталог /media
Примечание: я использую <input type="file" name="profile_pic" class="change_user_img">
для получения изображения из шаблона