FileField不是upload_to目录(WEIRD SOLUTION)

时间:2011-03-29 15:17:39

标签: django file-upload

编辑:我决定尝试将照片上传到媒体目录(upload_to ='')。有效。问题仍然存在,为什么我不能上传到路径中的下一个目录?我已经在我的本地服务器上成功完成了它,并且在过去也是远程完成的。提供什么?

这是一个主要问题,我无法弄清楚这个问题。我想将图像保存到目录“post_photos”。在我的本地Windows环境中,这很好用。在过去,我也让它在Linux上运行得很好。现在,出于某种原因,我的Ubuntu环境将不允许上传文件。

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 = '/path_to_mysite/public_html/media'  ##i've also tried this with a trailing slash

在命令行中,我在media中创建了目录post_photos。根据教程,我chgrp到www-data(我认为这是运行的apache),然后chmod g + w。我也尝试过chmod 777作为目录。

在我的管理员中,post_photos正在保存,它向我展示了图像的路径...它们实际上并不存在。

有没有人遇到过这类问题?我应该更改更多目录的权限吗?

当我尝试在管理员后端上传文件时,它会出现以下错误:

Failed to load source for: http://(mysite.com)/admin/website/post_photo/4/

1 个答案:

答案 0 :(得分:0)

我认为您需要使用MEDIA_ROOT

结束/
MEDIA_ROOT = '/path_to_mysite/public_html/media/'

修改

此外,您需要在upload_to中指定文件的名称。您可以查看the docs here