Django静态文件配置备忘录

早就听说Django配置静态文件比较麻烦,关键是没有很好的教程来说这个事,就算有教程也是说的很含糊,摸索了2天,终于搞好了Admin里通过FileField上传下载的问题了,记录如下:

 

1、修改settings.py

#上传文件所在的物理根目录
MEDIA_ROOT = 'd:/output/django/landsupervisor/media'

#上传的文件依赖这个url前缀来获取文件,这个前缀最终要和上面的MEDIA_ROOT映射起来(在url.py里做),这个前缀坚决要和下面的ADMIN_MEDIA_PREFIX区分开,我就是把这两个设置为一样的,所以总提示找不到上传后的文件。
MEDIA_URL = '/mymedia/'

#ADMIN自己的静态目录url前缀,ADMIN里的静态文件都是通过这个前缀获取的,系统会自己映射到类似X:\Django-1.2.1\django\contrib\admin\media的目录上
ADMIN_MEDIA_PREFIX = '/media/'

 

2、修改url.py

在urlpatterns变量中追加这么一句   (r'^mymedia/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.MEDIA_ROOT}),

就是把上菜设置的MEDIA_URL前缀通过django静态服务映射到物理路径settings.MEDIA_ROOT上。

 

3、ADMIN的模型中可以使用

xfile = Filefield(upload_to='images')

ADMIN里就会自动有一个上传文件的表单控件来完成上传工作。

 

posted @ 2010-08-25 15:18  电电儿  阅读(775)  评论(0编辑  收藏  举报