python - Django上传文件url问题

标签 python django file-upload

我有这个媒体根目录:

MEDIA_ROOT = '/var/www/hosted/myapp/static/'
以及此媒体网址
MEDIA_URL = '/static/res/'
我正在尝试使用可调用文件上传文件:
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/中,但在管理中它会创建一个指向 static/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/

相关文章:

javascript - 如何使用 javascript 以表单形式调整多个图像的大小、预览和上传

python - 我如何做一个时间延迟?

python - OpenCV - 绘制线条或矩形时出错

django - 在 manage.py shell 中自动导入所有 db 表

java - S3 SDK 在上传时更新单个对象而不是创建新文件

java - 将文件上传到谷歌应用程序引擎

python、flask 和 jinja2 : passing parameters to url_for

python - 你如何看待使用 selenium 的 Chrome webdriver

选择字段上的 Django SearchVector

django - 使用 Redis、Celery 设置 Django 以通过 Gmail 发送电子邮件