2012-05-10 22 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