Django syncdb找不到ForeignKey关系的postgres视图

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_

我试图创建一个与postgres视图的ForeignKey关系。这本来是一个不同的模型,但现在我已经创建了第二个,它似乎无法创建新表

我得到的错误是:
数据库错误:引用的关系“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,因此使我的内容有效。它不一定非要在乡下。