【发布时间】:2011-08-03 14:07:43
【问题描述】:
我有一个 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。正如我所说,我对组和权限进行了更改以允许服务器写入文件。
同样,当我直接通过管理员保存模型表单或模型时,它会为我提供正确的链接,只是那里不存在文件。
如果有人能帮我解决这个问题,我将永远感激不尽
【问题讨论】:
-
你是如何运行 Django 的? mod_wsgi 还是 mod_python?
标签: image apache upload django