django模板中未显示图像,但其他标签正在工作

时间:2018-10-26 18:25:00

标签: django

我正在尝试在Django模板中显示我的图像。但是图像没有显示。有一个标题标签可以正常工作。我不知道我被困在哪里。我在这里进行搜索并获得了很多解决方案,但是这些都不能解决我的问题。

这是我的views.py:

from django.shortcuts import render
from .models import Post
from django.utils import timezone

# Create your views here.
def home(request):
    posts = Post.objects.order_by('id')

    return render(request, 'home.html')

这是我的urls.py:

from django.conf.urls import url, include
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static

from Picture import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', views.home, name='home')
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

这是home.html:

{% load static %}
<html>
<head>
    <title>Home Page</title>
    <meta charset='utf-8'>
</head>
<body>
    <h1>{{ posts.title }}</h1>
    <img src="{{ posts.image.url }}" alt="image-{{ post.title }}">
</body>

图像位于媒体目录中。请帮助我解决问题。

1 个答案:

答案 0 :(得分:1)

我发现您的代码有两个问题

  1. return render(request, 'home.html')没有帖子上下文参数
  2. 在模板文件posts中的对象可能是一个查询集,您需要遍历它以呈现其属性
def home(request):
    posts = Post.objects.order_by('id')
    return render(request, 'home.html', {"posts":posts})