Django模板中category.name不显示问题排查及修复求助
问题排查与修复方案
嘿,从你说category_content是空列表这一点来看,核心问题大概率是数据库里还没有Category类型的数据,或者查询逻辑有小问题,咱们一步步来解决:
第一步:先确认数据库里有没有分类数据
最快的方式是用Django自带的shell来验证:
python manage.py shell
在shell里输入以下代码(记得把your_app_name换成你实际的app名称):
from your_app_name.models import Category # 查看所有分类数据 print(Category.objects.all())
如果输出是<QuerySet []>,那实锤了——你还没往数据库里添加任何分类数据,自然查不到内容。
第二步:如果数据库为空,先添加测试数据
有两种简单的方式添加数据:
方式一:通过Django Admin后台(推荐)
首先得在admin.py里注册Category模型,这样才能在后台管理它:
from django.contrib import admin from .models import Category admin.site.register(Category)
然后运行python manage.py runserver,访问http://localhost:8000/admin,登录后就能看到分类的管理入口,直接添加几条分类数据就行。
方式二:通过shell快速添加
还是在刚才的shell里执行:
# 创建两条测试分类 Category.objects.create(name="技术教程") Category.objects.create(name="生活感悟")
第三步:验证查询是否正常
回到shell里再执行一次查询:
Category.objects.order_by('-created_at')[:5]
如果能看到刚创建的分类对象,那说明查询逻辑没问题,此时刷新你的top.html页面,就能看到分类名称正常显示了。
额外小检查
你的模板循环代码{% for category in category_content %}是对的,变量名和视图里传递的一致,只要后端有数据,前端就能渲染出来。另外,模板里的<a href=""是空的,之后可以补充分类对应的详情页链接,比如href="{% url 'category_detail' category.id %}"(需要先配置对应的URL和视图函数)。
内容的提问来源于stack exchange,提问作者user9179850
相关产品推荐
相关产品推荐

