使用没有syncdb的Django时“找不到关系”错误

时间:2014-01-28 23:55:25

标签: python django postgresql

我有一个简单模型的小型Django项目。但是,我决定手动创建数据库并通过python manage.py syncdb映射表格,而不是通过Meta创建数据库,如下所示

class Item(models.Model):
    name = models.CharField(max_length=50)

    class Meta:
            managed = False                                                   
            db_table = 'ITEM'

但这不起作用。当我启动开发服务器并运行主视图时,Django会抛出一个错误,指出数据库中不存在名为ITEM的关系,而实际上它确实存在。

我做了一些研究,但找不到有这样问题的人。有没有办法让它发挥作用?

2 个答案:

答案 0 :(得分:2)

db_table名称应为小写:

db_table = 'item'

答案 1 :(得分:1)

Postgres将表名转换为小写字母,除非查询有引号。例如见:

http://binodsblog.blogspot.com/2011/02/postgresql-is-case-sensitive.html

通常情况下,细节会被ORM抽象掉,但如果您不使用syncdb,则必须对其进行管理。