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

Django中无法获取Course表title字段数据问题求助

Django中无法获取Course表title字段的解决方案

核心问题

你在views.py的course_details函数中犯了一个关键错误:调用course.first()后没有将返回的单个Course实例赋值回course变量,导致传递给模板的仍然是QuerySet对象(而非单个模型实例),因此模板中{{ course.title }}无法正确获取字段值。

修复步骤

1. 修改views.py中的course_details函数

将course.first()改为赋值操作,确保course变量指向单个Course实例:

def course_details(request, slug):
    category = Categories.get_all_category(Categories)

    course = Course.objects.filter(slug=slug)
    if course.exists():
        # 关键修复:将first()的结果赋值给course变量
        course = course.first()
    else:
        return redirect('404')

    context = {
        'course': course,
        'category': category,
    }
    return render(request, 'course/course_details.html', context)

或者更简洁的写法(直接用get_object_or_404自动处理不存在的情况):

from django.shortcuts import get_object_or_404

def course_details(request, slug):
    category = Categories.get_all_category(Categories)
    # 直接获取单个实例,不存在则返回404
    course = get_object_or_404(Course, slug=slug)

    context = {
        'course': course,
        'category': category,
    }
    return render(request, 'course/course_details.html', context)

2. 模板写法确认

当course是单个Course实例时,模板中{{ course.title }}的写法完全正确,可以直接获取title字段的值。

额外检查点

  • 确认数据库中对应slug的Course记录存在,且title字段已正确填充数据。
  • 验证slug生成逻辑正常:保存Course对象时,pre_save信号已触发,slug字段已正确生成并存储到数据库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 12:07:20