我想将图片上传到服务器。为此,我创建了一个表单,并在我的views.py文件中,我试图将其提交到服务器。这里它不会将文件上传到“images”文件夹。而不是它只更新使用新图像名称的数据库。所以任何人都可以给我一个解决方案。
这是views.py文件
@login_required
def edit_profile(request):
if request.POST:
employee = Employee.objects.get(user=request.user)
employee.avatar=request.POST.get('image')
employee.save()
return HttpResponseRedirect('/view_profile/')
user_profile = request.user.get_profile()
return render_to_response('edit_profile.html',{'profile':user_profile },context_instance=RequestContext(request))
这里是我的HTML代码
{% block content %}
<form action="." method="post">
{% csrf_token %}
<input type="file" name="image"/>
<input type="submit" value="Save Changes" name="save" />
</form>
{% endblock %}
我应该将图像上传到“images”文件夹
答案 0 :(得分:3)
您需要在enctype="multipart/form-data"
元素中添加form
,以便文件也会上传并在视图中的request.FILES
中显示。
因此请将其更新为
<form action="." method="post" enctype="multipart/form-data" >
....
Binding uploaded files to a form
的更多信息要保存图像,更容易使用ModelForm
并正确设置图像文件。但是你还是想直接保存对象吗
...
employee.avatar = request.FILES['image']
employee.save()