django PIL图片上传/显示问题

时间:2013-01-07 02:47:01

标签: django python-imaging-library django-models imagefield

我想让django来展示照片。我已经安装了PIL并且接缝工作。 我正在运行py 2.7,win 7,开发服务器和sqlite3

我的静态根:

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

我在这个文件夹中有一张背景图片,可以通过

访问它
http://127.0.0.1:8000/static/images/lomax.jpg

现在我试图通过图像字段上传图片&管理员。它工作正常,图片落在正确的文件夹(香港专业教育学院已经改变了文件夹一百万次,看看是否可能是问题)但图片无法显示。

我模特的一部分:

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

但是像localhost这样的接缝无法访问此文件夹。当我尝试 - 我得到一个404和django告诉我,网址与我在我的网址中定义的任何内容都不匹配。 这是真的 - 但我也没有为静态文件夹中的背景图像定义网址 - 我可以很好地访问这个网址。

我也尝试从我的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 %}
显然图片没有出现。

我不知道这里有什么问题。我想我可以在localhost上看到这张照片吗? 继承人错误铬的照片给了我

enter image description here

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

我真的希望有人可以帮我弄清楚image_field,如果我无法显示上传图片没有多大意义:)

提前谢谢! danielll

ouh和 - 我已经尝试过google和django参考等等。老实说,我无法弄明白这一点。各种帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

当处于DEBUG模式[ref]时,Django的contrib.staticfiles应用将monkeypatch你的网址提供静态文件。不幸的是,媒体文件无法说明。

将以下代码段添加到项目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