Django syncdb找不到ForeignKey关系的postgres视图
我试图创建一个与postgres视图的ForeignKey关系。这本来是一个不同的模型,但现在我已经创建了第二个,它似乎无法创建新表 我得到的错误是:Django syncdb找不到ForeignKey关系的postgres视图,django,postgresql,view,django-models,django-syncdb,Django,Postgresql,View,Django Models,Django Syncdb,我试图创建一个与postgres视图的ForeignKey关系。这本来是一个不同的模型,但现在我已经创建了第二个,它似乎无法创建新表 我得到的错误是: 数据库错误:引用的关系“countryzone”不是表 国家/地区模型定义如下: class Country(models.Model): code = models.CharField( db_column = 'countrycode', primary_key = True, max_
数据库错误:引用的关系“countryzone”不是表
国家/地区
模型定义如下:
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',
)
我引用的是另一个班级的国家模式,没有任何问题,比如:
countrycode = models.ForeignKey(
to = 'location.Country',
db_column = "countrycode",
)
有什么想法我可能会出错,或者我应该调查什么来发现我的问题吗?
谢谢 表的名称必须是location\u countryzone。看来syncdb自己无法处理这个问题,我需要使用manage.py sqlall来获取正确的查询并自己运行它。一旦这样做了,以后尝试使用syncdb时会跳过该表,这样我就可以继续使用它。我花了30秒重新格式化代码。下次请慢慢来。@rnevius我觉得这没什么大不了的,因为它仍然很容易阅读,但谢谢!您在执行syncdb之后是否添加了meta属性
db_table
?@karthikr我没有,在我尝试创建新模型之前,我就已经在那里添加了它。这应该不会影响这个问题,是吗?我假设只有在没有指定db_table的情况下才适用,即使没有指定,django是否会自动发现并搜索location_countryzone,但仍然失败?我同意,表的真实名称必须是app_tablename。即使这样,我也无法更改视图名称,在我加入这个项目之前就是这样,我的理解是,如果没有必要的话,他们不想改变。我假设它不需要这样命名,这是正确的约定,对吗?您刚才链接的文档说明我正在做的事情覆盖了您发布的内容,而不是它必须是app_tablename,因此使我的内容有效。它不一定非要在乡下。