我正在尝试为postgres视图创建ForeignKey关系。这最初是使用不同的模型,但现在我已经创建了第二个模型,但似乎无法创建新表。
我给出的错误是:
DatabaseError: referenced relation "countryzone" is not a table
Country
模型的定义如下:
class Country(models.Model):
code = models.CharField(
db_column = 'countrycode',
primary_key = True,
max_length = 2,
)
name = models.CharField(
max_length = 100,
db_column = 'countryname',
unique = True,
)
language_code = models.CharField(
max_length = 8,
null = True,
)
country_level = models.IntegerField()
latitude = models.DecimalField(
db_column = 'clat',
decimal_places = 3,
max_digits = 8,
null = True,
)
longitude = models.DecimalField(
db_column = 'clong',
decimal_places = 3,
max_digits = 8,
null = True,
)
timezone = models.IntegerField()
zone = models.CharField(max_length=1)
transit_time = models.IntegerField()
## MANAGER
objects = CountryManager()
## META DATA
class Meta:
db_table = 'countryzone'
我的新模型通过以下方式创建ForeignKey:
country = models.ForeignKey(
to = 'location.Country',
db_column = 'countrycode',
)
我引用了来自不同类的Country模型,没有任何问题:
countrycode = models.ForeignKey(
to = 'location.Country',
db_column = "countrycode",
)
我可能出错的任何想法或我应该查找的问题以找到我的问题? 谢谢!
答案 0 :(得分:0)
表的名称必须是location_countryzone。
答案 1 :(得分:0)
看起来syncdb无法自行处理,我需要使用manage.py sqlall来获取正确的查询并自行运行。一旦这样做,表格在未来的syncdb尝试中被跳过,所以我能够继续使用它。