1

我试图让 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/media/pic.jpg

但它似乎 localhost 无法访问此文件夹。当我尝试时 - 我得到一个 404 并且 django 告诉我该 url 与我在我的 url 中定义的任何内容都不匹配。这是真的 - 但我也没有为静态文件夹中的背景图像定义一个 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 %}

显然图片没有显示出来。

我不知道这里有什么问题。我想我应该能够在本地主机上看到图片吗?这是 chrome 给我的错误图片

在此处输入图像描述

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

我真的希望有人可以帮助我弄清楚 image_field,因为如果我不能显示它们上传图片没有多大意义:)

提前致谢!!!丹尼尔

哦,而且 - 我已经尝试过 google 和 django 参考等。老实说,我无法这样想。每一个帮助表示赞赏!

4

1 回答 1

1

Django 的 contrib.staticfiles 应用程序将在 DEBUG 模式[ref]时修补您的 url 以提供静态文件。不幸的是,媒体文件不能这样说。

将以下代码段添加到您的项目 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,
        }),
   )

文档参考

于 2013-01-07T03:20:51.177 回答