Django的:分配还没有被创建
问题描述:
我有关系型数据库和关系的一个看起来像这个类的一个外键:Django的:分配还没有被创建
Student < --- > Major_enrollments
所以我需要一个外键创建列到两个表中的第二个表。考虑到这个事实,我该怎么做?如果我定义了这个类,例如学生第一,我会收到这样的错误通知:“NameError:名称'Major_enrollments'未定义”。
这是一段代码,我写的(models.py):
class Students(models.Model):
nr_album = models.IntegerField()
fName = models.CharField(max_length=70)
lName = models.CharField(max_length=70)
pesel = models.BigIntegerField()
address = models.CharField(max_length=100)
major_enrollments = models.ForeignKey(Major_enrollments) #<---THAT DOESN'T WORK
def __unicode__(self):
return unicode(self.pesel)
class Meta:
db_table='Students'
class Major_enrollments(models.Model):
majors = models.ForeignKey(Majors)
students = models.ForeignKey(Students)
def __unicode__(self):
return unicode(self.id)
class Meta:
db_table='Major_enrollments'
答
可以使用类名(字符串形式),而不是类本身:
class Students(models.Model):
nr_album = models.IntegerField()
fName = models.CharField(max_length=70)
lName = models.CharField(max_length=70)
pesel = models.BigIntegerField()
address = models.CharField(max_length=100)
major_enrollments = models.ForeignKey('Major_enrollments')
def __unicode__(self):
return unicode(self.pesel)
class Meta:
db_table='Students'
答
使用字符串与文档中描述的类的名称:https://docs.djangoproject.com/en/1.5/ref/models/fields/#foreignkey
+0
而不是发布一个已经给出的答案,你可以编辑一个@PavelAnossov添加文档链接 – 2013-04-27 12:30:37
+1,你也可以使用'' .Major_enrollments''从外部模块 –
2013-04-27 12:22:44
哇我没有经历ct一个反应如此之快,很好:))..它的工作,但我需要在两个表中也广告'相关的名称',所以它看起来像这样: major_enrollments = models.ForeignKey('Major_enrollments',related_name ='Students_major_enrollments ') Thanks:)))!!!! – zawit 2013-04-27 12:47:59