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

Django点击博客详情时get()收到意外关键字参数title如何解决

问题原因及修复方案

核心报错原因:视图类方法缩进错误

你定义的ReadBlogs类下的get方法没有正确缩进,不属于类的成员方法,Django调用类视图默认的get方法时,无法匹配你传入的title参数,直接抛出参数不匹配错误。
同时你的代码还存在另外两处问题会导致后续功能异常,同步修复即可:

1. 修正视图代码

class ReadBlogs(View):
    # 先修正缩进,同时修改查询字段,你传递的是urltitle的值,需要按urltitle字段查询
    def get(self, request, title):
        # 原代码filter(title=title)是用普通标题字段匹配slug值,无法查到对应内容
        readblog = Blog.objects.filter(urltitle=title)
        return render(request,'blogs_read.html', {'readblog':readblog})

优化建议:因为urltitle是唯一约束的SlugField,你可以直接用get方法查询单条对象,不需要后续模板循环:

readblog = Blog.objects.get(urltitle=title)

2. 修正详情页模板变量错误

你在模板中循环变量命名为blog,取值时错误写为read,变量名不匹配会触发变量不存在错误:

<div class="col-11 card">
    <div class="blogs">
    {% for blog in readblog %}
      <!-- 原{{read.title}}改为{{blog.title}} -->
      <h1 class="text-center" style="color: #025; font-family:cursive; margin-top:20px;">{{blog.title}}</h1>
    {% endfor %}
    </div>
</div>

如果你用了上面的get方法查询单条对象,可以直接去掉for循环,直接写{{readblog.title}}即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:45:04