平台:Python 2.5中,Django开发根时,PostgreSQL 8.4,Windows Vista终极SP2。 过程:Django文档,版本1.0,链接文本,第34.2,提供了初始SQL数据。

CODE:

models.py:  

class aisc_customary(models.Model):
    MTYPE                 = models.CharField(max_length=4, editable=False, 
                                help_text="Shape type, e.g. W, C, L, etc.")
    EDI_STD_NOMENCLATURE  = models.CharField(max_length=26, editable=False, 
                                help_text="EDI shape designation")
    AISC_MANUAL_LABEL     = models.CharField(max_length=26, editable=False, primary_key=True, 
                                help_text="AISC Manual label")
    T_F                   = models.CharField(max_length=1, editable=False, 
                                help_text="Special note flag, T or F")
    W                     = models.FloatField(editable=False, 
                                help_text="Nominal weight, lbs/ft")
... (45 more FloatFields)


application1/sql/aisc_customary.sql:  

    INSERT INTO application1_aisc_customary (MTYPE, EDI_STD_NOMENCLATURE, AISC_MANUAL_LABEL, T_F, W, A, D, HT, OD, BF, B, ID, TW, TF, T, TNOM, TDES, KDES, KDET, K1, X, Y , E0, XP, YP, BF_2TF, B_T, H_TW, H_T, D_T, IX, ZX, SX, RX, IY, ZY, SY, RY, RZ, J, CW, C, WNO, SW, QF, QW, RO, H, TAN_ALPHA, QS) VALUES ('W', 'W44X335', 'W44X335', 'F', 335, 98.5, 44.0, 0, 0, 15.9, 0, 0, 1.03, 1.77, 0, 0, 0.00, 2.56, 2.63, 1.31, 0.00, 0.00, 0.00, 0.00, 0.00, 4.50, 0.00, 38.0, 0.00, 0.00, 31100, 1620, 1410, 17.8, 1200, 236, 150, 3.49, 0.00, 74.7, 535000, 0.00, 168, 1180, 278, 805, 0.00, 0.00, 0.00, 0.00);
    INSERT INTO application1_aisc_customary (MTYPE, EDI_STD_NOMENCLATURE, AISC_MANUAL_LABEL, T_F, W, A, D, HT, OD, BF, B, ID, TW, TF, T, TNOM, TDES, KDES, KDET, K1, X, Y , E0, XP, YP, BF_2TF, B_T, H_TW, H_T, D_T, IX, ZX, SX, RX, IY, ZY, SY, RY, RZ, J, CW, C, WNO, SW, QF, QW, RO, H, TAN_ALPHA, QS) VALUES ('W', 'W44X290', 'W44X290', 'F', 290, 85.4, 43.6, 0, 0, 15.8, 0, 0, 0.865, 1.58, 0, 0, 0.00, 2.36, 2.44, 1.25, 0.00, 0.00, 0.00, 0.00, 0.00, 5.02, 0.00, 45.0, 0.00, 0.00, 27000, 1410, 1240, 17.8, 1040, 205, 132, 3.49, 0.00, 50.9, 461000, 0.00, 166, 1040, 248, 701, 0.00, 0.00, 0.00, 0.00);
    INSERT INTO application1_aisc_customary (MTYPE, EDI_STD_NOMENCLATURE, AISC_MANUAL_LABEL, T_F, W, A, D, HT, OD, BF, B, ID, TW, TF, T, TNOM, TDES, KDES, KDET, K1, X, Y , E0, XP, YP, BF_2TF, B_T, H_TW, H_T, D_T, IX, ZX, SX, RX, IY, ZY, SY, RY, RZ, J, CW, C, WNO, SW, QF, QW, RO, H, TAN_ALPHA, QS) VALUES ('W', 'W44X262', 'W44X262', 'F', 262, 76.9, 43.3, 0, 0, 15.8, 0, 0, 0.785, 1.42, 0, 0, 0.00, 2.20, 2.25, 1.19, 0.00, 0.00, 0.00, 0.00, 0.00, 5.57, 0.00, 49.6, 0.00, 0.00, 24100, 1270, 1110, 17.7, 923, 182, 117, 3.47, 0.00, 37.3, 405000, 0.00, 165, 928, 223, 630, 0.00, 0.00, 0.00, 0.00);

... (1965 more lines like this)

Django开发服务器正常工作和PostgreSQL服务器运行,当麻烦的初始数据文件从它的标准路径移除回答有关其他车型数据的查询。

使用坏表的先前版本使用pgAdmin的III,控制台命令“蟒manage.py执行syncdb”产生该错误下降:

创建表application1_aisc_customary 对于application1.aisc_customary模型安装定制的SQL 无法安装application1.aisc_customary模式自定义SQL:关系栏“MTYPE”“application1_aisc_customary”不存在 LINE 1:INSERT INTO application1_aisc_customary(MTYPE,EDI_STD_NOME ...

一个克拉指向MTYPE的M个。尽管如此,列中的错误(大写)MTYPE的确实存在,如可以使用pgAdmin的III中可以看出。需要注意的是Django管理报告表,但它没有记录。

我试过Unicode和ANSI编码的SQL,以编辑=假关闭模型属性和小写名字的一切,但模型属性。也许我失去了一些准备的SQL语句。我剔除。我将是一个启发性的反应非常感激。在此先感谢您的帮助。

09年9月21日:为了记录在案,zalew的答案是正确的。需要小写字段名。我也不得不改变一个字段名称,ID(内径),以纠正与主键的明显冲突i_d。我改变了OD值o_d相匹配。问题解决了。

有帮助吗?

解决方案

我跑的测试,具有相同的结果你。所以它的工作原理ü必须使用小写字段名。但是,你不必须重写SQL,可以留在SQL大写,在模型中定义为小写,它会工作得很好!这很奇怪,因为PGSQL列名称是区分大小写的。在另一边,Django会不会让你有两个字段 - 一个小写字母和一个大写具有相同的名称(可能阻止由于各种数据库系统的Django与工程),所以......还是怪:)

找不到任何关于此问题的背景细节,但。只要按照小写约定。编辑示范田,以降低和运行SQL。

其他提示

嗯。通过syncdb命令创建表之前正在执行瞎猜,也许你自定义的SQL?

scroll top