如何在主页中添加显示图像

时间:2019-06-19 19:07:40

标签: python django

我创建了一个我想在其中发布一些带有图像信息的网站,在我的管理页面中,我可以添加图像,并且效果很好。但是当我进入首页时却没有出现

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

url

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

2 个答案:

答案 0 :(得分:0)

这里有几个问题:

首先,在您的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" />关闭图像标签

答案 1 :(得分:0)

  

您尝试这样吗?

{% for Doc in documents %}
 <div class="content-wrapper">
  <div class="card">
    <div class="card-image">

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

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

希望您的settings.py文件中有此文件

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')