我创建了一个我想在其中发布一些带有图像信息的网站,在我的管理页面中,我可以添加图像,并且效果很好。但是当我进入首页时却没有出现
我使用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
答案 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')