Django-服务媒体ValueError

问题描述

| 我正在尝试在我的开发环境中提供用户上传的媒体文件
#settings.py
#[...]
import os
SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
MEDIA_ROOT = (os.path.join(SITE_ROOT,\'media/\'))
MEDIA_URL = \'/media/\'
STATIC_URL = \'/static/\'
STATICFILES_Dirs = (
  os.path.join(SITE_ROOT,\'static/\'),)
#[...]

#url.py
urlpatterns = patterns(\'\',#[...]
  url(r\'^%s(?P<path>.*)$\' % settings.MEDIA_URL[1:],\'django.views.static.serve\',{\'document_root\',settings.MEDIA_ROOT}
  ),url(r\'^%s(?P<path>.*)$\' % settings.STATIC_URL[1:],settings.STATIC_ROOT}
  ),)
尝试访问上层文件,例如http://127.0.0.1:8000/media/videos/julian_06.flv,我得到了   /media/videos/julian_06.flv的ValueError      字典更新序列元素#0的长度为40; 2个为必填项     

解决方法

        我建议尝试按照文档进行开发中的静态托管
if settings.DEBUG:
urlpatterns += patterns(\'django.contrib.staticfiles.views\',url(r\'^media/(?P<path>.*)$\',\'serve\'),)
编辑: 您的字典在
\'document_root\'
settings.MEDIA_ROOT
之间应有
:
而不是
,
urlpatterns = patterns(\'\',url(r\'^%s(?P<path>.*)$\' % settings.MEDIA_URL[1:],\'django.views.static.serve\',{\'document_root\': settings.MEDIA_ROOT}),)