2013-11-26 75 views
0

我有2個模型,並將它們之間的外鍵Django的屬性錯誤

class League(models.Model): 
    """ 
    League Info 
    """ 
    def __unicode__(self): 
     return self.name 

    FUTBOL = 'FUT' 
    FUTBOLITO = 'FT7' 
    OTRO = 'OTH' 

    LEAGUE_CHOICES = (
     (FUTBOL, 'Fútbol'), 
     (FUTBOLITO, 'Futbolito'), 
     (OTRO, 'Otro'), 
    ) 

    MASCULINO = 'M' 
    FEMENINO = 'F' 
    MULTIPLE = 'A' 
    SEX_CHOICE = (
     (MASCULINO, 'Masculino'), 
     (FEMENINO, 'Femenino'), 
     (MULTIPLE, 'Femenino y Masculino'), 
    ) 

    league_type = models.CharField(null=False, blank=False, max_length=3, choices=LEAGUE_CHOICES, default=FUTBOLITO) 
    league_sex = models.CharField(max_length=2, choices=SEX_CHOICE, default=MASCULINO) 

    name = models.CharField(null=False, blank=False, max_length=200) 

第二種模式是

class Division(models.Model): 
    """ 
    Division of a League e.g. Junior, Senior; First Division, Second Division 
    """ 

    def __unicode__(self): 
     return self.name 


    MASCULINO = 'M' 
    FEMENINO = 'F' 
    MULTIPLE = 'A' 
    SEX_CHOICE = (
     (MASCULINO, 'Masculino'), 
     (FEMENINO, 'Femenino'), 
     (MULTIPLE, 'Femenino y Masculino'), 
    ) 

    name = models.CharField(null=False, blank=False, max_length=200) # name required 

    league = models.ForeignKey(League, blank=False) 
    league_name = league.name 
    league_type = league.league_type 
    league_sex = league.league_sex 

當我運行執行syncdb我得到了一個錯誤:AttributeError的:「ForeignKey的」對象有沒有屬性'league_type'

我得到了與league_sex相同的錯誤,但沒有得到它與league_name,這似乎是好的。該應用程序是在setiings已安裝的應用

+0

'league_name = league.name'這不是定義模型字段的正確方法。你想在這裏做什麼? –

+0

我只需要一些相關模型的信息(字段) –

回答

1

你做錯了,剛剛從Division模式刪除以下行:

league_name = league.name 
league_type = league.league_type 
league_sex = league.league_sex 

稍後,如果要訪問從分裂對象聯賽的信息,你可以這樣做:

division = Division.objects.get(id=some_id) 
league = division.league 
print league.name 
print league.league_type 

我想你只是困惑。

+0

是的,我認爲我真的很困惑 謝謝;) –