我想在django中存储imaage但无法执行此操作。这是我试过的..
upload.html
<form name="saveImage" enctype="multipart/form-data" action="{% url 'Reports:saveimage'%}" method="post">
{% csrf_token %}
<div style = "max-width:470px;">
<center>
<input type = "file" style = "margin-left:20%;"
placeholder = "Picture" name = "picture" />
<input type="submit" value="Store"></input>
</center>
</div>
</form>
model.py
def vo_image_upload(inatance,filename):
return os.path.join('Volunteer',filename)
class Volunteer(models.Model):
myphoto = models.ImageField(db_column='MyPhoto', upload_to=vo_image_upload, blank=True, null=True)
views.py
def saveimage(request):
image= request.FILES['picture']
vo = Volunteer.objects.using('NSS_VO').update(myphoto=image).
return HttpResponse("<h1>Success</h1>")
使用更新是因为我在注册后存储图像。
此代码仅将文件名保存到数据库中的myphoto
字段,但不将图像存储在media
的{{1}}文件夹中。
项目/项目/ url.py
Project/project/media/
以及upload.html,views.py,models.py属于app Reports。 我需要做哪些更改才能成功存储图像
答案 0 :(得分:2)
您无法使用update()
执行此操作,因为它仅对数据库进行操作,并且不会执行任何实际的文件保存。您必须获取对象,分配文件字段并保存:
vo = Volunteer.objects.using('NSS_VO').get(id=whatever)
vo.myphoto=image
vo.save()