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

来源:互联网 发布:网络实用技术基础答案 编辑:程序博客网 时间:2024/04/28 05:32
两位大侠的的参考,
http://blog.csdn.net/mineyouhe/article/details/21151645
http://www.cnblogs.com/virusswb/archive/2011/12/23/2299218.html
条件就是要把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配置。
fromdjango.conf.urlsimportpatterns, url
fromcommon importviews
fromdjango.confimportsettings
importdjango

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。


1 0
原创粉丝点击