Django:如何在模型创建时将图像上传到MEDIA_ROOT

时间:2015-12-13 21:41:19

标签: django

我有以下模型,ImageField()扩展了User

class Tenant(models.Model):
   user = models.OneToOneField(User)
   photo = models.ImageField()
   apartment = models.ForeignKey('Apartment')

但是,当我从表单创建模型时,图像不会保存到我的MEDIA_ROOT目录中。这似乎是非常基本的功能,但我无法在任何地方找到简单的答案。

当我在管理部分创建用户时,文件会保存,但不会在我使用表单创建时保存。我该怎么办?

1 个答案:

答案 0 :(得分:1)

问题在于。

首先我有:

$json_output = @file_get_contents("http://www.youtube.com/oembed?url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D" . $v['id']);

但纠正于:

...
photo = request.POST['photo'] # <--- 'POST', incorrect
tenant = Tenant(user=user, photo=photo, apartment=apartment)
tenant.save()

来自https://docs.djangoproject.com/en/1.8/topics/http/file-uploads/

注意:

我还必须从

更改模板中的表单标记
photo = request.FILES['photo'] # <--- 'FILES', correct
tenant = Tenant(user=user, photo=photo, apartment=apartment)
tenant.save()

<form action="/account/create_account/" method="post">