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

首次使用Django遇AttributeError:tuple对象无get属性及模板问题求助

嘿,我一眼就找到问题根源啦!咱们一步步来解决:

问题定位与修复步骤

1. 核心错误:视图返回了元组而非响应对象

你看到的AttributeError: 'tuple' object has no attribute 'get',直接原因在views.py的返回语句里:

return render(request, "product/detail.html", context),

末尾多出来的逗号,让你返回的不是Django需要的HttpResponse对象,而是一个包含响应的元组。Django的中间件(比如这里的点击劫持防护中间件)会尝试调用响应对象的get方法,可元组根本没有这个方法,于是就报错了。

修复方法:删掉那个多余的逗号:

return render(request, "product/detail.html", context)

2. 模板语法错误需要同步修正

你的product/detail.html里的if标签语法也有问题,空格位置不对:

<p>{ % if description } {{ description }} { % else % } Description Coming Soon { % endif % }</p>

正确的模板标签语法应该是标签与百分号之间无空格,且标签闭合格式正确。修正后:

<p>{% if description %} {{ description }} {% else %} Description Coming Soon {% endif %}</p>

额外小提示:解决PyCharm缩进提示问题

关于PyCharm提示的缩进无效,没必要加无意义的空格。Django模板的缩进虽不像Python代码严格,但保持标签和内容的缩进一致(比如{% block %}内的内容缩进4个空格),既能符合模板规范,也能让PyCharm的语法检测更准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:31:04