Django上传文件网址问题

时间:2011-08-22 12:05:50

标签: python django file-upload

我有这个媒体根:

MEDIA_ROOT = '/var/www/hosted/myapp/static/'
和这个媒体网址
MEDIA_URL = '/static/res/'
,我正在尝试使用callable上传文件:
def get_uploadto(instance, filename):
    ''' Dummy callable to silence the upload_to field of FileFields '''
    return os.path.join('uploads', filename)
,它上传了在/ var / www / hosted / myapp / static / uploads /磁盘上的图片只是按照计划,但在管理员中它创建一个poiting到static / res / uploads的链接,这个链接不存在。有谁知道为什么?当然,我可以简单地在静态res中移动上传目录,但我正在寻找更优雅的解决方案。

1 个答案:

答案 0 :(得分:3)

这是预期的行为。文件在

MEDIA_ROOT + 'uploads' + filename
or
/var/www/hosted/myapp/static/uploads/filename

指向这些文件的URL是:

MEDIA_URL + 'uploads' + filename
or
/static/res/uploads/filename

然后,您需要确保您的应用程序或托管环境将URL指向磁盘位置。在开发环境中,你的urlpatterns会有这样的东西:

(r'^static/res/(?P<path>.*)$', 'django.views.static.serve', {'document_root': os.path.dirname(settings.MEDIA_ROOT)}),