2013-01-07 69 views
1

我想让Django显示图片。我安装了PIL,它的接缝工作。 我运行PY 2.7,赢7,研究与开发服务器和sqlite3的django PIL图像上传/显示问题

我的静态根:

STATIC_ROOT = r'H:/netz2/skateproject/static/' 

IVE此文件夹中有一个背景图片,并可以通过

http://127.0.0.1:8000/static/images/lomax.jpg 

存取权限它现在即时通讯尝试通过图像领域&管理员上传图片。它工作正常,图片降落在正确的文件夹(ive现在更改文件夹一百万次,看看是否可能是问题),但图片无法显示。我的模型的

部分:

class Sk8(models.Model): 
    name  = models.CharField(max_length=50, default='name of the model') 
    bild1  = models.ImageField(upload_to="uploads/") 

我的媒体根:

MEDIA_ROOT = r'H:/netz2/skateproject/media/' 

在正确的文件夹中的图片的土地。 NETZ/skateproject /媒体/ pic.jpg

但接缝像本地主机不能存取权限此文件夹。当我尝试 - 我得到一个404和Django告诉我,该网址不匹配我在我的网址中定义的任何东西。 这是真的 - 但是也没有我定义的URL静态文件夹中的背景图片 - 我可以访问此一个就好了。

香港专业教育学院还试图从我的HTML模板存取权限的文件,像这样:

{% extends "grundgerüst.html" %} 
{% block inhalt %} 
    <div id='skatelist'> 
     {% for sk8 in skates %} 
     <p><a href="/skates/{{sk8.slug}}/">{{sk8}}</a></p> 
     <p><img src="{{sk8.bild.url}}"/></p> 
     {% endfor %} 
    </div> 
{% endblock %} 

明显的图片显示不出来。

我不知道这里有什么问题。我想我应该能够看到本地主机上的图片? 继承人的错误铬的PIC给我

enter image description here

如果即在图片中的文件夹是比代码示例的那些不同的,因为我改变了他们测试不同的设置。

我真的希望有人可以帮我找出image_field,因为如果我不能显示他们并没有太大的意义:)

由于事先上传的图片! danielll

ouh和 - 我已经试过谷歌和Django参考等我真的无法弄清楚这种方式。每一个帮助赞赏!

回答

1

Django的contrib.staticfiles应用程序将猴补丁网址来服务时,在调试模式下[ref]静态文件。不幸的是,媒体文件也不能这样说。

添加下面的代码片段到您的项目urls.py显示媒体

django.conf import settings 

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

Docs reference

+0

真棒!就是这样!完美答案,谢谢! 如果别人有这个问题不要忘记包含: 从django.conf导入设置 在您的网址或youll首先收到错误。 如果您需要更好的理解它,请检查Thomas发布的django文档的链接。 谢谢托马斯 - 救了我的一天! –