无法在post.html模板中显示模型数据的技术求助
解决Django DetailView模板无法显示模型数据的问题
我仔细看了你的代码,问题其实出在post.html模板的变量命名上。Django的DetailView默认会把获取到的模型实例以两种固定形式传递到模板上下文里:
- 小写的模型类名(你的模型是
Tutorials,所以对应的变量是tutorials) - 通用的
object变量
而你在post.html里一直用的是{{ Tutorials.title }}这种大写开头的变量名,Django根本找不到这个变量,自然就没法显示数据了。
具体修复步骤
把post.html里所有的Tutorials换成tutorials或者object就行,另外我还注意到你写了{{ Tutorials.datetime }},但从blog.html的代码看,模型里的字段应该是date,这里也一起修正更稳妥:
修改后的post.html代码
{% block content %} <h3>{{ tutorials.title }}</h3> <h6> on {{ tutorials.date|date:"Y-m-d" }}</h6> <div class = "code"> {{ tutorials.content|linebreaks }} </div> {% endblock %}
额外需要确认的点
- 确保你的
Tutorials模型确实包含title、date、content这些字段 - 检查urls.py里的
DetailView配置,model=Tutorials是正确的 - 访问文章页面时,URL里的
pk对应的是数据库中真实存在的Tutorials实例ID
这样调整后,模板应该就能正常渲染模型数据了。
内容的提问来源于stack exchange,提问作者Sahil
相关产品推荐
相关产品推荐

