首页 > 解决方案 > 如何在我的主页中添加显示图像

问题描述

我正在创建一个网站,我想在其中发布一些带有图像的信息,在我的管理页面中我可以添加图像并且它工作正常。但是当我来到主页时它没有出现

我正在使用 django 和 python。我知道,我以前在主页模板中调用图像的方式不对,请帮助我如何将图像带入主页?

网址

from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static


app_name = "main"

urlpatterns = [
                path("", views.homepage,name="homepage"),

] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

主页模板

{% extends 'main/base.html' %}

{% block content %}
<a class="waves-effect waves-light btn" href="">button</a>
<div class="row">
   <div class="col s12 m9" >
    {% for Doc in documents %}
  <div class="card">
    <div class="card-image">

        <p>{{Doc.docs_name}}</p>
        <p>{{Doc.police_station}}</p>
        <p>{{Doc.docs_details}}</p>
        <img src = "{{Documents.docs_pic.url}}" width = "240">

    </div>
  </div>
 {% endfor %} 

</div> 

 </div>
 {% endblock %}

意见

from django.shortcuts import render
from django.http import HttpResponse
from . models import Documents
from main.models import Documents


# Create your views here.

def homepage(request):
    return render(request=request,
                  template_name="main/home.html",
                  context={"documents":Documents.objects.all}

    )

模型

from django.db import models

# Create your models here.

class Documents(models.Model):
    docs_name = models.CharField(max_length=200)
    police_station = models.CharField(max_length=200)
    docs_details = models.TextField()
    docs_pic = models.ImageField(upload_to="profileimages",blank=False)

    def __str__(self):
        return self.docs_name

标签: pythondjango

解决方案


这里有几个问题:

首先,在你views.py传递Documents.objects.all到模板上下文中。您应该Documents.objects.all()作为函数调用;注意()最后

其次,在您引用的模板中Documents.docs_pic.url。您在 forloop 中,Doc您定义的变量在哪里,所以这应该是Doc.docs_pic.url

还有一些小事:你应该设置width="240px"并且应该关闭图像标签,用<img src="{{ Doc.docs_pic.url }}" style="width: 240px" />


推荐阅读