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' 
+1

+1,你也可以使用'' .Major_enrollments''从外部模块 – 2013-04-27 12:22:44

+0

哇我没有经历ct一个反应如此之快,很好:))..它的工作,但我需要在两个表中也广告'相关的名称',所以它看起来像这样: major_enrollments = models.ForeignKey('Major_enrollments',related_name ='Students_major_enrollments ') Thanks:)))!!!! – zawit 2013-04-27 12:47:59

使用字符串与文档中描述的类的名称:https://docs.djangoproject.com/en/1.5/ref/models/fields/#foreignkey

+0

而不是发布一个已经给出的答案,你可以编辑一个@PavelAnossov添加文档链接 – 2013-04-27 12:30:37