首页 > 解决方案 > Django 迁移错误

问题描述

我试图迁移这些模型,但我遇到了错误。我添加了字段位置,经理最初不在我的模型中。将 project_name 设置为项目模型中的主键:我跑了python manage.py migrate,我得到一个错误:下面是模型。

class Employee(models.Model):
    position = models.CharField(max_length=200)
    manager= models.CharField(max_length=200,default="x")
    employee_number = models.PositiveIntegerField(primary_key=True)


class Project(models.Model):
    project_code=models.CharField(max_length=200)   
    employees = models.ManyToManyField(Employee,through="User_Projects")
    project_name= models.TextField(primary_key=True)

class User_Projects(models.Model):
    employee_number = models.ForeignKey(Employee,to_field='employee_number',on_delete=models.CASCADE)
    project_name = models.ForeignKey(Project,to_field="project_name",on_delete=models.CASCADE)

我得到的错误如下,我需要帮助:

InternalError:(1829,"cannot drop column 'id' : needed in a foreign key constraint 'timeapp_user_projects_projects_id_cf8c73ba_fk_timeapp_project_id' of table 'timesheets.timeapp_user_projects'")

标签: djangodjango-models

解决方案


检查你的迁移文件,django 可能已经生成了删除字段 'id' 然后创建了 alter 命令。您可以编辑迁移文件以删除“RemoveField”,然后尝试迁移。python manage.py 迁移


推荐阅读