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

Django项目无法读取数据库课程数据并展示给用户问题求助

Django课程列表页加载错误修复方案

已发现的错误点

  • 模板循环变量调用错误:for循环遍历的单个课程变量是course,但模板内全部误用了集合变量courses调用单条课程属性,导致无法正确读取单条课程的封面、名称、更新时间、价格等信息
  • 方法名拼写错误:跳转链接中get_absoule.url拼写错误,正确方法名是get_absolute_url,且该方法直接返回url字符串,不需要额外加.url后缀
  • 缺少静态文件加载声明:模板中使用了{% static %}标签,若模板顶部未添加{% load static %}声明会触发标签找不到的报错
  • 空链接冗余:详情页a标签内部无内容,不会响应点击,属于无效代码

修复后的代码

1. list.html模板修复版

{% load static %}
{%block content %}
<section id="about-home">
  <h2>Courses</h2>
</section>

<!-- courses section starts  -->
<section id="course">
  <h1>Our Amazing Courses</h1>
  <p>Replenish man have thing gathering lights yielding shall you</p>
  
  <div class="course-box">
        {% for course in courses %}
        <div onclick="window.location.href='{{ course.get_absolute_url }}';" class="courses">
            <img 
            src="{% if course.cover %}{{ course.cover.url }} {% else %} {% static 'images/c3.jpg' %}{% endif %}" 
            alt="{{ course.name }}" />
        <div class="details">
            <span>{{course.updated}}</span>
            <h6><a href="{{ course.get_absolute_url }}">{{course.name}}</a></h6>
            <div class="star">
            <i class="fas fa-star"></i>
            <i class="fas fa-star"></i>
            <i class="fas fa-star"></i>
            <i class="fas fa-star"></i>
            <i class="far fa-star"></i>
            <span>(23)</span>
            </div>
        </div>
        <div class="cost">${{course.price_display}}</div>
    </div>
    {% endfor %}
</section>

{%endblock content%}

可选排查项(若修复后仍有问题可校验)

  • 确认Courses模型中已正确实现get_absolute_url方法,参考写法:
from django.urls import reverse
class Courses(models.Model):
    # 原有字段声明
    def get_absolute_url(self):
        return reverse('course_detail', args=[str(self.id), self.slug])
  • 确认Courses模型中存在cover、updated、name、price_display字段,名称拼写完全一致
  • 确认urls.py中已配置名为course_detail的路由,参数匹配id和slug

内容的提问来源于stack exchange,提问作者Moses Eyime Akoji

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:36:03