2012-05-10 5 views
0

テーブルに外部キーを作成する際に問題が発生しています。外部キーテーブルには、次のとおりです。FK用の正確なdjango dbカラムを作成する

CREATE TABLE `main_app_provider` (
    `provider` varchar(100) NOT NULL DEFAULT '', 
    `provider_slug` varchar(100) DEFAULT NULL, 
    PRIMARY KEY (`provider`), 
    KEY `main_app_provider_75a6f163` (`provider_slug`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

私は一般的なprovider = models.ForeignKey('main_app.Provider')をすれば、私はerrno:150を取得します。どのようにして正確な基準をプロバイダに定義したフィールドをdjangoに追加しますか?

答えて

1

to_fieldを使用して、Djangoが主キーとして使用するフィールドを指定します。

provider = models.ForeignKey('main_app.Provider', to_field='provider') 
+0

まだ、djangoではlatin1テーブルが作成されていますが、これはutf8と一致しません。私はどのようにutf8を強制するのですか? – David542

+0

'ALTER DATABASE ... CHARACTER SET utf8 COLLATE utf8_general_ci' //ここで' $ syncdb'が動作しました – David542

関連する問題