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

Django展示单篇Post报500错误,Post无object属性如何解决

Django单篇文章查询500错误排查方案

问题原因

从Debug报错栈可以直接定位错误根因:Django为每个模型默认提供的ORM查询管理器名称为objects(复数形式,末尾带s),你在views.py的post视图函数中误写为单数形式object,导致程序找不到对应属性抛出AttributeError,触发500服务器错误。

解决方案

基础修复(可直接解决当前报错)

修改views.py中post视图的查询代码:

def post(request, pk):
    # 修正前:post = Post.object.get(id=pk)
    post = Post.objects.get(id=pk)
    context = {'post': post}
    return render(request, 'base/post.html', context)

保存修改后重启Django服务,即可正常访问单篇文章页面。

可选优化

为了避免用户访问不存在的文章ID时依然抛出500错误,推荐使用Django内置的get_object_or_404方法优化查询逻辑:

  1. 在views.py头部导入对应工具:
from django.shortcuts import render, get_object_or_404
  1. 替换查询代码:
post = get_object_or_404(Post, id=pk)

调整后当请求的文章ID不存在时,服务会返回标准404页面,符合常规Web交互逻辑。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 17:21:00