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

Django中关联Course的Lesson与Question模型外键配置问题

首先给出正确的Question模型定义:

class Question(models.Model):
    # 外键关联Lesson模型
    lesson = models.ForeignKey(Lesson, on_delete=models.CASCADE)
    # 其余你的自定义字段...

相关说明:

  • 你原来的写法有两个错误:一是外键指向的对象错设为了Course,改为Lesson即可满足你关联Lesson的需求;二是on_delete参数的写法错误,正确写法是models.CASCADE。
  • Django的ForeignKey字段会自动在数据库表中生成带_id后缀的存储字段,你定义字段名为lesson,数据库实际存储的字段名就是lesson_id,不需要手动在字段名中加_id后缀,遵循这个默认约定可以避免后续开发出现不必要的问题。
  • 不需要额外在Question中新增关联Course的外键,后续你可以通过链式调用直接获取到对应课程:question实例.lesson.course即可拿到该问题所属课时对应的课程对象,也能避免数据冗余。
  • 修改完模型代码后,依次执行python manage.py makemigrations、python manage.py migrate即可将字段变更同步到数据库。

内容的提问来源于stack exchange,提问作者Trader Man

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 15:45:02