我已经有了这个媒体根目录:MEDIA_ROOT ='/ var / www / hosted / myapp / static /'和这个媒体urlMEDIA_URL ='/ static / res /',我正尝试使用可调用的文件上传文件:def get_uploadto(实例,文件名):
'''可调用的虚拟对象使FileFields的upload_to字段静音'''
返回os.path.join('uploads',filename),按计划将图片上传到/ var / www / hosted / myapp / static / uploads /中的磁盘上,但是在管理员中它创建了指向静态链接/ res / uploads(不存在)。有人知道为什么吗?当然,我可以简单地在静态资源中移动上载目录,但是我正在寻找更优雅的解决方案。
最佳答案
这是预期的行为。文件在
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)}),
关于python - Django上传文件URL问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7147188/