我有一个带有9个表的MySQL数据库。它们都以某种方式相关,但我无法连接外键。例如这里有两个我的表,我得到一个错误,当我尝试蟒蛇manage.py迁移:Django作为外键的主键
class Release(models.Model):
release_ID = models.CharField(max_length=25, primary_key =True)
releaseversion = models.CharField(max_length=25)
model_ID = models.ForeignKey(Model, on_delete=models.CASCADE) #comes from Model class
class Subrelease(models.Model):
subrelease_ID = models.CharField(max_length=25)
release_ID = models.ForeignKey('Release', blank =True) #comes from Release class
subreleaseversion = models.CharField(max_length=25)
我怎么会让从类版本的主键,这是RELEASE_ID也算是ForeignKey的RELEASE_ID在课堂Subrelease?任何帮助将非常感激。谢谢。
后,我跑迁移我得到这个在CMD: django.db.utils.InternalError:(1829年,“不能删除列‘ID’:在一个外键约束需要‘app_subrel_release_ID_id_8e08450_fk_app_release_id’表‘db.app_subrelease’的“)
更新: 这是好的/可以做的吗?迁移到数据库时没有任何错误?
class Release(models.Model):
#release_ID = models.CharField(max_length=25, primary_key =True)THIS WILL BE OUR PRIMARY KEY MADE BY DJANGO
releaseversion = models.CharField(max_length=25)
model = models.ForeignKey(Model, on_delete=models.CASCADE) #comes from Model class model_ID
class Subrelease(models.Model):
#subrelease_ID = models.CharField(max_length=25) THIS WILL BE OUR PRIMARY KEY MADE BY DJANGO
release = models.ForeignKey(Release, on_delete=models.CASCADE) #comes from Release class release_ID
subreleaseversion = models.CharField(max_length=25)
“错误”
一旦你创建了外键,你可以按如下方式访问价值和相关实例?分享是关怀。 –
你能正确格式化你的缩进吗?什么错误?追溯?此外,我不认为你想空白=真作为外键 –
哎呀,对不起,我忘了发布错误。谢谢你让我知道。我更新了我的问题。 – Carbon