Django,ImageFiled 图片请求多APP 图片显示

本文介绍了在Django项目中,如何在多个应用程序下配置ImageField以显示图片。通过设置MEDIA_URL和MEDIA_ROOT,修改model中的ImageField,并在urls.py中配置静态文件服务,解决跨应用图片请求的问题。同时,文中提到了两种不同的url配置方式及可能遇到的ImportError,提供了解决方案。
摘要由CSDN通过智能技术生成
两位大侠的的参考,
条件就是要把model 中 ImageField 中的图片路径 能在URL中请求显示
name = models.CharField( u'课程名称' , max_length = 50 )
image = models.ImageField( u'课程封面' , upload_to = 'course/%Y/%m' )


1、首先要在settin.py 中设置,这里的文字解说明参考 http://blog.csdn.net/mineyouhe/article/details/21151645
MEDIA_URL = '/uploads/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads' )
2、modle 中的写法如上

3、在url中写url配置。
from django.conf.urls import patterns, url
from common import views
from django.conf import settings
import django

urlpatterns = patterns( 'common.views' ,
url( r'^$' , views.index, name = 'index' ),
url( r'^header/$' , views.aaa),
url( r'^uploads/(?P<path>.*)$' , django.views.static.serve, { 'document_root' : settings.MEDIA_ROOT, 'show_indexes' : True }),

)

而上面两处参考的有点不同为 django.views.static.serve 有引号
  1、 (r'^media/(?P<path>.*)$', 'django.views.static.serve' , {'document_root': settings.MEDIA_ROOT}),

2、urlpatterns=patterns( '' ,
     (r '^site_medias/(?P<path>.*)$' , 'django.views.static.serve' ,
         { 'document_root' :mysite.settings.STATICFILES_DIRS, 'show_indexes' : True}),
       
)

如安下面两种写法访问时则会报错:
ImportError at /uploads/course/2016/12/20160804105046.jpg
No module named 'common.views.django'; 'common.views' is not a package


解决方法,就是把引号去掉,import django 模块, 我的 patterns( 'common.views' , 是多APP在同一个Django工程下。而这个APP就是叫common。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值