Django图像上传失败...文件未写入目录(怪异的bug)

时间:2011-04-11 20:38:55

标签: image apache upload django

我有一个Django模型,它应该通过ImageField将图像上传到我服务器上的媒体目录。

我在Linux服务器上成功完成此操作。在这种情况下,我已将组更改为www-data并将权限更改为g + w,以允许apache将文件写入特定媒体文件夹以及媒体根目录。

当我通过管理门户网站和我网站前端的模型表格保存模型时,模型会验证。正如所料,该文件的链接存储在数据库中。但文件没有写。

这很令人困惑,因为A)它正在我的本地服务器上运行而且B)我有一个不同的模型,可以成功保存并将图像写入我的服务器。我无法弄清楚为什么这两件事都在工作而其他图片上传失败。

这是我的模特:

    class Post_Photo(models.Model):
       post=models.ForeignKey(Post,blank=True,null=True)
       photo=models.FileField(upload_to="post_photos") 

       def __unicode__(self):
           return str(self.post)

这是我的设置文件:

    MEDIA_ROOT = '/home/public_html/media'

目录post_photos位于/ home / public_html / media / post_photos。正如我所说,我对组和perms进行了更改,以允许服务器写入文件。

同样,当我直接通过管理员保存模型或模型时,它给了我正确的链接,那里没有文件。

如果有人可以帮助我解决这个问题,我会永远感激

1 个答案:

答案 0 :(得分:0)

您可以尝试设置变量来定义本地存储:

local_storage = FileSystemStorage(location=SITE_ROOT, base_url='/post_photos')

然后在您的模型上使用它:

photo = models.FileField(storage=local_storage)