在模板django中使用图像

在模板django中使用图像,django,django-templates,Django,Django Templates,我想在模板中查看图像,但我不明白我做错了什么 models.py class Item(models.Model): name = models.CharField(verbose_name = "Название", max_length = 100) TYPE_ITEMS = ( ("shirt", "Футболка"), ("shoes", "Обувь"), ("bags", "Рюкзаки и сумки"),

我想在模板中查看图像,但我不明白我做错了什么

models.py

class Item(models.Model):
    name = models.CharField(verbose_name = "Название", max_length = 100)
    TYPE_ITEMS = (
        ("shirt", "Футболка"),
        ("shoes", "Обувь"),
        ("bags", "Рюкзаки и сумки"),
        ("heads", "Головные уборы"),
        ("others", "Другое"),
        )
    type_item = models.CharField(verbose_name = "Тип продукта",
                                 choices = TYPE_ITEMS, max_length = 6,
                                 default = "shirt")
    other = models.CharField("другая информация", max_length = 200)
    color = models.CharField("Цвет(а)", max_length = 100)
    cost = models.IntegerField("Стоимость за штуку", default = 0)
    is_available_now = models.BooleanField("Есть ли в наличии?",
                                           default = False)
    available_count = models.IntegerField("Количество в наличии", default = 0)
    photo = models.ImageField("Фото", upload_to = "photos/to_trade")

    def __str__(self):
        return self.name + " " + self.color + " (" + str(self.cost) + " грн)"
views.py

from django.shortcuts import render
from django.http import HttpResponse
from django.template import RequestContext, loader ####
from myapp.models import Item

def index(request):
    return render(request, "index.html")

def goods(request):
    shirts_list = Item.objects.filter(type_item = "shirt")

    template = loader.get_template("goods.html")
    context = RequestContext(request, {
        "shirts_list": shirts_list,})
    return HttpResponse(template.render(context))

def contacts(request):
    return render(request, "contacts.html")

def delivery(request):
    return render(request, "delivery.html")
url.py

from django.conf.urls import patterns, include, url
from django.contrib import admin

from myapp import views

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'paporotnik.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),

    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', views.index, name = "index"),
    url(r'^goods', views.goods, name = "goods"),
    url(r'^contacts', views.contacts, name = "contacts"),
    url(r'^delivery', views.delivery, name = "delivery"),
    url(r'^photos/to_trade/(?P<path>.*)$', 'django.views.static.serve'),
)
这是我的模板:

{% load staticfiles %}

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset = "utf-8">
        <title>Товары - Paporotnik.ua</title>
        <link rel = "stylesheet", type = "text/css", href = "{% static 'myapp/style_index.css' %}">
    </head>
    <body>
        <div id="container">
            <!-- Верхняя панель (заголовок) -->
            <div id="header">
                <div style = "float: left; width:100%">
                    <div style = "margin: 0 10%;">
                        <br><h1 id = "heed">Paporotnik.ua</h1><br>
                    </div>
                </div>
                <div id = "divLogo">
                    <img id = "logo", width = "125", height = "125">
                </div>
                <div id = "trash" align = "center">
                    <h3>Корзина</h3>
                    <img align = "center", width = "70", height = "50">
                </div>
            </div>
            <!-- Центр, основное содержимое -->
            <div id="wrapper">
                <div id="content">
                    <p align = "center">
                    <h2 align = "center">Футболки</h2>
                    <div align = "center">
                        {% for item in shirts_list %}
                            <img src = "{{item.photo}}", width = "150", height = "250">
                        {% endfor %}
                    </div>
                </div>
            </div>
        </div>
    </body>
</html>
{%load staticfiles%}
ааааф-Paporotnik.ua

Paporotnik.ua
{%endfor%}
在浏览器中查看代码时,路径是正确的:

但当我点击URL时,我看到:

它告诉我我的照片不存在,但它在那里


您没有正确指定照片的URL。在模板中,替换该行

<img src = "{{item.photo}}", width = "150", height = "250">

<img src = "{{item.photo.url}}", width = "150", height = "250">

我想您没有指定
媒体
文件夹。在
settings.py中,您需要:

MEDIA_URL = '/media/'
MEDIA_ROOT = join(settings.PROJECT_ROOT, 'media')

photos/to_trade
应位于此
media
文件夹中。您还需要在模板中使用
{{item.photo.url}
,而不是
{{item.photo}

我想提醒您的东西<代码>静态
存储网站前端所需的css、js和图像<代码>媒体存储用户上传的所有图像。因此,在您的设置中定义

MEDIA_URL = 'media/'
然后,在模板中,将
/{{MEDIA\u URL}}
附加到
{{item.photo}
前面

并在URL.py文件中,向urlpatterns追加:

+static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

这应该可以解决问题。

试试
{{{item.photo.url}
它没有帮助((哦……我看到Gocht建议使用同样的方法了!非常感谢)。
+static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)