我有这个媒体根:
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中移动上传目录,但我正在寻找更优雅的解决方案。
答案 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)}),