You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django模板无法渲染内容:blogpost页面无内容显示求助

问题修复方案

1. 修正视图函数的参数与查询逻辑

你的views.py里的blogpost函数存在两个关键错误:

  • 函数参数定义为post_id,但URL传递的是slug参数,参数名不匹配,导致无法获取URL中的slug值
  • 查询时使用了未定义的变量slug,同时filter()返回的是查询集合(QuerySet),若要获取单篇文章,应使用get()或first()获取单个对象,推荐用get_object_or_404,找不到内容时直接返回404页面更合理

修改后的blogpost函数:

from django.shortcuts import render, get_object_or_404
from blog.models import Post

def blogpost(request, slug):
    post = get_object_or_404(Post, slug=slug)
    print(post)
    context = {'post': post}
    return render(request, 'blog/blogpost.html', context)

2. 修正模板细节

模板中存在拼写错误(contaier应为container),虽不影响内容显示,但修正后更规范;同时确保模板渲染的是单个对象的属性:

{% extends 'basic.html' %}

{% block title %}Blog{% endblock title %}

{% block body %}

<div class="container">
    <div class="row">
        <div class="col-md-8 py-4">
            <h2 class="blog-post-title">{{post.title}}</h2>
        </div>
    </div>
</div>

{% endblock body %}

3. 额外验证点

  • 确认Post模型中存在slug字段,且数据库内已有文章数据,URL中传递的slug值与数据库内的slug完全匹配
  • 访问文章页面时,URL格式应为http://你的域名/文章slug,确保slug参数正确传递

内容的提问来源于stack exchange,提问作者user19380298

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 15:54:17