2017-10-15 98 views
0

models.pyDjango的 - 在同一模型中有一個以上的外鍵

class City(models.Model): 
    id = models.IntegerField(primary_key=True) 
    name = models.CharField(max_length=35) 
    countrycode = models.CharField(max_length=3) 
    district = models.CharField(max_length=200) 
    population = models.IntegerField(default='0') 

class Country(models.Model): 
    code = models.CharField(primary_key=True, max_length=3) 
    name = models.CharField(max_length=52) 
    continent = models.CharField(max_length=50) 
    region = models.CharField(max_length=26) 
    surfacearea = models.FloatField() 
    indepyear = models.SmallIntegerField(blank=True, null=True) 
    population = models.IntegerField() 
    lifeexpectancy = models.FloatField(blank=True, null=True) 
    gnp = models.FloatField(blank=True, null=True) 
    gnpold = models.FloatField(blank=True, null=True) 
    localname = models.CharField(max_length=45) 
    governmentform = models.CharField(max_length=45) 
    headofstate = models.CharField(max_length=60, blank=True, null=True) 
    capital = models.IntegerField(blank=True, null=True) 
    code2 = models.CharField(max_length=2) 

SQL爲模特

爲市 INSERT INTO city VALUES (3955,'Sunnyvale','USA','California',131760);

爲國家 INSERT INTO country VALUES ('BHS','Bahamas','North America','Caribbean',13878.00,1973,307000,71.1,3527.00,3347.00,'The Bahamas','Constitutional Monarchy','Elisabeth II',148,'BS');

問題1 在上面提到的車型我怎麼能與在Country.codeCity.countrycode代碼,我不能夠這樣做,因爲國家模式是城市模型後宣佈。

問題2 而如何鏈接Country.capital in國家模式,即,涉及到City.name一個整數。

注意 我正在將一個.sql文件與InnoDB引擎轉換爲PostgreSQL。

回答

0

看起來像你需要聲明foreign key通過串

class City(models.Model): 
    name = models.CharField(max_length=35) 
    countrycode = models.ForeignKey('Country', blank=True, null=True) 


class Country(models.Model): 
    code = models.CharField(primary_key=True, max_length=3) 
    name = models.CharField(max_length=52) 
    capital = models.ForeignKey('Country', blank=True, null=True) 
+0

我不明白有關的,我得到* city.countrycode_id不存在*錯誤 –

+0

你做遷移? –

+0

是的,我不明白'id'列是如何自動添加到表格中的。 –

相關問題