【发布时间】:2019-05-31 02:57:02
【问题描述】:
我正在从 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) 没有更新,奇怪的是当我从 admins.py 检查我的Profile 模型时,它显示了我上传的文件名,但我的文件没有显示在我的/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 中,而 Image 没有上传到 /media 目录
注意:我使用<input type="file" name="profile_pic" class="change_user_img"> 从模板中获取图像
【问题讨论】:
标签: python django imagefield