I am updating some of fields in model from views.py file. All other fields are updated properly when I use
Profile.objects.filter(id=user_profile.id).update(
bio=bio,
city=city,
date_of_birth=dob,
profile_pic=profile_pic,
gender=gender
)
only, profile_pic = models.ImageField(blank=True)
is not updated, Weird thing is when I check my Profile
model from admins.py it shows me the file name which I uploaded, But my file is not shown in my /media
directory(where I upload my all Images)
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]))
This is how I manage my media files in settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
I think only text is stored in ImageField and Image is not uploded to /media
directory
Note: I am using <input type="file" name="profile_pic" class="change_user_img">
for getting image from template
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…