用Django上传ImageField

时间:2013-01-26 23:40:56

标签: python django upload

我正在尝试使用django上传图像,到目前为止我看不到创建的upload_to目录或数据库字段中的任何文件源。

我的模特。

class Person(models.Model):
  photo = models.ImageField(upload_to='profiles/', null=True, blank=True)

我的观点

def create_profile(request):
    if request.method == "POST":
        form = PartialPersonForm(request.POST, request.FILES,)
        addressForm = PartialAddressForm(request.POST)

当我上传并保存时,我不会遇到任何错误。无论如何,我可以调试它,并找出是否设置了照片字段。

 <div class="photo-upload">{{ form.photo|attr:"onchange:readURL(this);" }}

2 个答案:

答案 0 :(得分:2)

除非您在媒体存储方面做了一些特别的事情,否则您应该将MEDIA_ROOT设置到您希望保存上传文件的目录。

在处理文件类型字段时,您需要按照FileField.storage的Django文档中的说明进行操作。

在您看来,您需要save()上传的表单数据。

def create_profile(request):
    if request.method == "POST":
        form = PartialPersonForm(request.POST, request.FILES,)
        addressForm = PartialAddressForm(request.POST)
        form.save()
        addressForm.save()

答案 1 :(得分:-2)

我相信你应该自己创建upload_to目录。另外,请确保为目录设置适当的权限,否则将无法在其中写入。