使用Django为表设置外键时出错

时间:2018-03-22 14:21:04

标签: mysql django python-3.x django-models foreign-keys

我试图设置一个表的一列的外键但遇到问题。 我定义了四个类如下:

class Genes(models.Model):
id = models.CharField(primary_key=True, max_length=255)
name = models.CharField(max_length=255, blank=True, null=True)
notes = models.CharField(max_length=255, blank=True, null=True)

class Meta:
    managed = False
    db_table = 'Genes'


class Metabolites(models.Model):
id = models.CharField(primary_key=True, max_length=255)
name = models.CharField(max_length=255, blank=True, null=True)
compartment = models.CharField(max_length=255, blank=True, null=True)
charge = models.CharField(max_length=255, blank=True, null=True)
formula = models.CharField(max_length=255, blank=True, null=True)
notes = models.CharField(max_length=255, blank=True, null=True)

class Meta:
    managed = False
    db_table = 'Metabolites'


class Reactions(models.Model):
id = models.CharField(max_length=255, blank=True, primary_key=True)
name = models.CharField(max_length=255, blank=True, null=True)
metabolites = models.TextField(blank=True, null=True)
lower_bound = models.CharField(max_length=255, blank=True, null=True)
upper_bound = models.CharField(max_length=255, blank=True, null=True)
gene_reaction_rule = models.TextField(blank=True, null=True)
subsystem = models.CharField(max_length=255, blank=True, null=True)
notes = models.CharField(max_length=255, blank=True, null=True)

class Meta:
    managed = False
    db_table = 'Reactions'


class Reactionsmeta(models.Model):
id = models.CharField(max_length=255, blank=True, primary_key=True)
name = models.CharField(max_length=255, blank=True, null=True)
metabolite1 = models.ForeignKey(Metabolites, on_delete = models.CASCADE)
stoichiometry1 = models.IntegerField(blank=True, null=True)
metabolite2 = models.CharField(max_length=255, blank=True, null=True)
stoichiometry2 = models.IntegerField(blank=True, null=True)
#...
class Meta:
    managed = False
    db_table = 'ReactionsMeta'

至于Reactionsmeta类,代谢物1,代谢物2,......的数据是每种代谢物的id。因此,我想将代谢物1,2,3 ....设置为指向代谢物类的外键。但是,当我这样做时,发生了错误,告诉我:

(1054,“字段列表'中的未知栏'ReactionsMeta.metabolite1_id'”)

有人可以告诉我哪里做错了吗?

0 个答案:

没有答案