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

使用context_object_name后Django前端无法显示对象问题求助

Django ListView设置context_object_name后列表不显示的解决方法

问题根源

页面无法显示对象列表,核心是两个代码错误:

  • 模板循环内变量引用错误
  • 模型类方法缩进不符合Python语法规范

错误1:模板变量引用错误

在book_list.html的循环逻辑中,你定义的循环变量是book,但内部却使用了{{ object.title }},这会导致无法正确读取当前循环项的属性。需要将object.title改为book.title。

修正后的book_list.html代码:

<!--templates/books/book_list.html-->
{% extends '_base.html' %}

{% block title %}Books{% endblock title %}

{% block content %}
   {% for book in book_list %}
      <div>
        <h2><a href="">{{ book.title }}</a></h2>
      </div>
   {% endfor %}
{% endblock content %}

错误2:模型类方法缩进错误

models.py中的__str__方法没有缩进在Book类的代码块内,导致该方法不属于Book模型,会引发模型实例的字符串表示异常(虽然不是列表不显示的直接原因,但会影响后续调试和显示逻辑)。

修正后的models.py代码:

from django.db import models

# Create your models here.
class Book(models.Model):
   title = models.CharField(max_length=200)
   author = models.CharField(max_length=200)
   price = models.DecimalField(max_digits=6, decimal_places=2)

   def __str__(self):
       return self.title

验证

完成上述修正后,重启Django服务器,页面即可正常展示book_list中的所有图书条目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 12:15:27