Django的。无法使用media_url访问媒体文件

时间:2013-05-28 19:35:57

标签: django django-models django-views

我的媒体文件有问题。 在我的models.py中,我可以上传一个没有问题的文件mapa = models.FileField(upload_to ='zones / osm')。这会将文件放入media / zones / osm /。但是当我尝试从views.py访问该文件时,我得到了:异常值:[Errno 2]没有这样的文件或目录:'/ media / zones / osm / prova1.osm'

有人能说我的错吗?这是我的配置:

目录结构:

tottrack/
    media/  
        zones/
            osm/
    principal/
        views.py
        models.py
    tottrack/
        settings.py

settings.py:

SETTINGS_PATH = os.path.dirname(os.path.realpath(__file__))
PROJECT_PATH = os.path.join(SETTINGS_PATH,'..')
DEBUG = True

MEDIA_ROOT = os.path.join(PROJECT_PATH,'media')
MEDIA_URL = '/media/'

INSTALLED_APPS = (
    'django.contrib.staticfiles',
)

url.py:

if settings.DEBUG:    
urlpatterns += staticfiles_urlpatterns()
urlpatterns += patterns('',
    (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': True }),    
    (r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_ROOT, 'show_indexes': True}),
)

Views.py:

c = City('/media/zones/osm/prova1.osm') #City() it's a method from a custom python library.

这可能是我图书馆的问题?如果我想念一些东西请告诉我!提前谢谢。

1 个答案:

答案 0 :(得分:0)

您使用绝对路径来文件(它以/开头),这意味着它从文件系统根目录搜索它,而不是相对于媒体目录。)

如果您的自定义City对django内部结构一无所知,则需要提供文件/home/User/projects/bla-bla/media/zones/osm/prova1.osm的完整路径