【发布时间】:2014-08-11 06:52:27
【问题描述】:
我正在尝试创建与 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",
)
有什么想法我可能会出错或我应该研究什么来找到我的问题吗? 谢谢!
【问题讨论】:
-
我花了 30 秒重新格式化您的代码。下次请抓紧时间。
-
@rnevius 我认为这没什么大不了的,因为它仍然很容易阅读,但是谢谢!
-
你在同步数据库之后添加了元属性
db_table吗? -
@karthikr 我没有,我什至在尝试创建新模型之前就已经拥有它了。
标签: django postgresql view django-models django-syncdb