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。