html - 图片未显示在帖子中。在 Django 中,post.image 没有在 blogHome.html 和 blogPost.html 页面中显示图像
问题描述
我的 django 项目主页和博客中有两个应用程序。所有与帖子相关的编码都在博客应用程序中。我正在从 Post 模型中获取数据。这是 blogHome.html 模板的编码
{% extends base.html %}
<h1>Posts Results By Ayyal Ayuro Care</h1>
<div class="row row-cols-1 row-cols-sm-2 row-cols-md-3 g-3 my-4">
{% for post in allPosts %}
<div class="col">
<div class="card shadow-sm">
<img src="{{post.image}}" class="d-block w-100" alt="...">
<div class="card-body">
<h3>Post by {{post.author}}</h3>
<h4>{{post.title}}</h4>
<p class="card-text">
<div class="preview">{{post.content|safe| truncatechars:150 }}</div>
</p>
<div class="d-flex justify-content-between align-items-center">
<div class="btn-group">
<a href="{{post.slug}}" role="button" class="btn btn-primary">View More</a>
</div>
<small class="text-muted">{{post.timestamp}}</small>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
这是 blogPost.html 的编码。当有人单击 blogHome.html 页面中的查看更多按钮时,它会显示 blogPost.html 页面。但是图像也没有显示在此页面中。
{% extends base.html %}
<div class="container my-4">
<img src="{{post.image}}" class="d-block w-100" alt="...">
<h2 class="blog-post-title">{{post.title}}</h2>
<p class="blog-post-meta">{{post.timestamp}} by <a href="#">{{post.author}}</a></p>
<p>{{post.content|safe}}</p>
<hr>
</div>
这是我的博客应用程序的views.py文件
from django.contrib.auth import models
from django.http import response
from django.shortcuts import redirect, render, HttpResponse
from datetime import datetime
from home.models import Comment
from blog.models import Post
from django.contrib import messages
from django.contrib.auth.models import User
# Create your views here.
def blogHome(request):
allPosts = Post.objects.all()
context = {'allPosts': allPosts}
return render(request, 'blog/blogHome.html', context)
# return HttpResponse("This is Herbal Drugs Page")
#return HttpResponse('This is blog home. We will keep all blog posts here')
def blogPost(request, slug):
post = Post.objects.filter(slug=slug).first()
comment = Comment.objects.filter(post=post, parent=None)
replies = Comment.objects.filter(post=post).exclude(parent=None)
replyDict = {}
for reply in replies:
if reply.parent.sno not in replyDict.keys():
replyDict[reply.parent.sno] = [reply]
else:
replyDict[reply.parent.sno].append(reply)
context = {'post': post, 'comments': comment, 'user': request.user, 'replyDict': replyDict}
return render(request, 'blog/blogPost.html', context)
#return HttpResponse(f'This is blogPost : {slug}')
这是博客应用程序的 urls.py 文件
from django.contrib import admin
from django.urls import path, include
from blog import views
urlpatterns = [
path('', views.blogHome, name="bloghome"),
path('<str:slug>', views.blogPost, name="blogPost"),
]
图像在静态下的图像中。除了 post.image 之外,帖子中的每个字段都在工作。当我添加新帖子时,它会显示所有内容,但不显示图像。这是帖子在网页中的显示方式
解决方案
代替
<img src="{{post.image}}" class="d-block w-100" alt="...">
利用
<img src="{{post.image.url}}" class="d-block w-100" alt="...">
推荐阅读
- node.js - 如何从父目录导入 npm 模块?
- ionic-framework - 更改颜色和字体大小图标 Ion-toolbar
- scala - 在scala中将一个列表元素与第二个列表列表结合起来
- ios - 滚动冻结和滚动在 iphone 设备 ionic3 中不起作用?
- ios - 使用状态栏手势滚动到顶部时如何删除 UICollectionView 中的额外空间?
- android - 具有 3 层边框的 Android 可绘制形状
- java - 为什么 JNDI 无法识别来自数据源的 bean
- bash - 检查文件是否有适当的后缀 bash
- spring - 考虑将其中一个 bean 标记为 @Primary,更新使用者以接受多个 bean,或使用 @Qualifier
- r - R Shiny - 结合 reactivePoll 以从数据库获取最新数据,并在输入日期范围更改时强制触发