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

Django中从新创建模型添加外键报错,无法完成迁移

问题解决

你的报错核心原因是**Status类没有继承django.db.models.Model**,导致它不是一个有效的Django数据库模型,ForeignKey无法将其作为关联目标。

修正后的代码:

from django.db import models

class Status(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

class Project(models.Model):
    projectID = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=50)
    projectBrief = models.TextField(default="")
    status = models.ForeignKey(Status, blank=True, null=True, on_delete=models.SET_NULL)

关键说明

在Django的ORM体系中,所有需要映射为数据库表的模型类必须继承models.Model,这个父类会提供模型所需的数据库交互、字段管理等核心功能。你之前的Status只是普通Python类,没有被Django识别为数据库模型,因此触发了ForeignKey的参数验证错误。

执行修正后的代码后,重新运行python manage.py makemigrations和python manage.py migrate即可正常生成数据库表和外键关联。

内容的提问来源于stack exchange,提问作者Adnan Nazir

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 12:11:04