プラットフォーム:Python 2.5、Django開発ルート、PostgreSQL 8.4、Windows VistaUltimateSP2。手順:Djangoドキュメント、リリース1.0、リンクテキスト、セクション34.2、初期SQLデータの提供。
コード:
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サーバーは動作し、他のモデルのデータに関するクエリに応答します。
以前のバージョンの不良テーブルがpgAdminIIIを使用して削除された場合、コンソールコマンド「pythonmanage.pysyncdb」で次のエラーが発生します。
テーブルapplication1_aisc_customaryの作成application1.aisc_customaryモデルのカスタムSQLのインストールapplication1.aisc_customaryモデルのカスタムSQLのインストールに失敗しました:リレーション「application1_aisc_customary」の列「mtype」が存在しません行1:INSERT INTO application1_aisc_customary(MTYPE、EDI_STD_NOME .. ..
カラットはMTYPEのMを指しています。エラーにもかかわらず、 pgAdmin IIIを使用して見られるように、列(大文字)のMTYPEは存在します。Django管理者がテーブルを報告しますが、レコードがないことに注意してください。
SQLのユニコードとANSIエンコーディングを試し、editable = Falseをモデル属性から外し、モデル属性以外のすべての名前を小文字にしました。たぶん私はいくつかの準備的なSQLステートメントが欠けています。私は印象的です。啓蒙的な対応をいただければ幸いです。よろしくお願いします。
09/21/09:記録として、zalewの答えは正しいです。小文字のフィールド名が必要です。また、主キーとの明らかな競合を修正するために、1つのフィールド名id(内径)をi_dに変更する必要がありました。それに合わせてodをo_dに変更しました。問題が解決しました。