Django,上传图片错误
Django, upload image error
在我的应用程序中,用户可以更改他们的个人资料数据,例如全名、性别、个人资料图片和其他内容。问题是当用户想要保留相同的个人资料图片并且文件输入为空时。在我看来,我如何支持这一点。
这是我的htmlupdateProfile.html
<form action="{% url 'updateprofile' %}" enctype="multipart/form-data" method="POST">{% csrf_token %}
<input type="file" id="logofile" name="avatar" accept="image/gif, image/jpeg, image/png" value="">
<input type="text"name="full_name">
<input type="date"name="birthdate">
</form>
这是我的 views.py updateprofile
def updateprofile(request):
#HERE IS WHERE I CHECK IF I CHANGE THE IMAGE OR NOT BUT THIS NOT WORKS IF THE FILE INPUT IS EMPTY
if request.FILES['avatar']:
avatar = request.FILES['avatar']
full_name=request.POST['full_name']
birth_date= request.POST['birthdate']
c = user.objects.get(id=request.session['account_id'])
c.full_name = full_name
c.avatar = avatar
c.save()
return redirect('userprofile')
如果我更改文件输入中的文件,一切正常。但是,如果我不上传新图片并将文件输入留空,我就会出错。
如何检查 POST 请求中是否有文件?请帮忙
您可以使用 if request.FILES.get('avatar')
而不是 if request.FILES['avatar']
这不会引发 KeyError。
在我的应用程序中,用户可以更改他们的个人资料数据,例如全名、性别、个人资料图片和其他内容。问题是当用户想要保留相同的个人资料图片并且文件输入为空时。在我看来,我如何支持这一点。
这是我的htmlupdateProfile.html
<form action="{% url 'updateprofile' %}" enctype="multipart/form-data" method="POST">{% csrf_token %}
<input type="file" id="logofile" name="avatar" accept="image/gif, image/jpeg, image/png" value="">
<input type="text"name="full_name">
<input type="date"name="birthdate">
</form>
这是我的 views.py updateprofile
def updateprofile(request):
#HERE IS WHERE I CHECK IF I CHANGE THE IMAGE OR NOT BUT THIS NOT WORKS IF THE FILE INPUT IS EMPTY
if request.FILES['avatar']:
avatar = request.FILES['avatar']
full_name=request.POST['full_name']
birth_date= request.POST['birthdate']
c = user.objects.get(id=request.session['account_id'])
c.full_name = full_name
c.avatar = avatar
c.save()
return redirect('userprofile')
如果我更改文件输入中的文件,一切正常。但是,如果我不上传新图片并将文件输入留空,我就会出错。 如何检查 POST 请求中是否有文件?请帮忙
您可以使用 if request.FILES.get('avatar')
而不是 if request.FILES['avatar']
这不会引发 KeyError。