2014-01-17 29 views
0

我想提出一個Django應用程序,並具有當我嘗試添加一些表從管理界面我的應用程序的「設備」的以下問題: 列device.plID_id不存在列不存在

這裏是類:

class Device(models.Model): 
    id = models.IntegerField(primary_key=True) 
    name = models.CharField(max_length = 20) 
    slug = models.SlugField(unique=True,help_text='URL page created from name') 
    model_name = models.CharField(max_length = 20) 
    plID = models.ForeignKey('onep_web.Platform', unique = False) 
    sdkID = models.ForeignKey('onep_web.SDKVersion',unique = False) 
    IPID = models.ForeignKey('onep_web.IPAddress',unique = False) 

和輸出sqall命令:

BEGIN; 
CREATE TABLE "device" (
    "id" integer NOT NULL PRIMARY KEY, 
    "name" varchar(20) NOT NULL, 
    "slug" varchar(50) NOT NULL UNIQUE, 
    "model_name" varchar(20) NOT NULL, 
    "plID_id" integer NOT NULL, 
    "sdkID_id" integer NOT NULL, 
    "IPID_id" integer NOT NULL 
) 
; 
CREATE TABLE "platform" (
    "id" integer NOT NULL PRIMARY KEY, 
    "platform_name" varchar(20) NOT NULL 
) 
; 
ALTER TABLE "device" ADD CONSTRAINT "plID_id_refs_id_364a8522" FOREIGN KEY ("plID_id") REFERENCES "platform" ("id") DEFERRABLE INITIALLY DEFERRED; 
CREATE TABLE "sdk_ver" (
    "id" integer NOT NULL PRIMARY KEY, 
    "language" varchar(20) NOT NULL, 
    "version" numeric(100, 100) NOT NULL 
) 
; 
ALTER TABLE "device" ADD CONSTRAINT "sdkID_id_refs_id_bb71f431" FOREIGN KEY ("sdkID_id") REFERENCES "sdk_ver" ("id") DEFERRABLE INITIALLY DEFERRED; 
CREATE TABLE "ip_addr" (
    "id" integer NOT NULL PRIMARY KEY, 
    "ip" inet NOT NULL 
) 
; 
ALTER TABLE "device" ADD CONSTRAINT "IPID_id_refs_id_7c42b845" FOREIGN KEY ("IPID_id") REFERENCES "ip_addr" ("id") DEFERRABLE INITIALLY DEFERRED; 
CREATE TABLE "files" (
    "id" integer NOT NULL PRIMARY KEY, 
    "file" varchar(100) NOT NULL, 
    "isConfig" boolean NOT NULL 
) 
; 
CREATE INDEX "device_slug_like" ON "device" ("slug" varchar_pattern_ops); 
CREATE INDEX "device_plID_id" ON "device" ("plID_id"); 
CREATE INDEX "device_sdkID_id" ON "device" ("sdkID_id"); 
CREATE INDEX "device_IPID_id" ON "device" ("IPID_id"); 

當只有兩個表的設備和平臺一切正常。我增加了一些表格後,我有這個問題

回答

0

Django的manage.py,不使用或處理遷移(目前),你需要使用南至變更表(當你改變模式): http://south.aeracode.org/

安裝南,按照詳細的說明,你會很容易地保持你的架構是最新的。

+0

它是唯一的解決方案嗎?我已經看到它是什麼,並決定找出更多的解決方案 –

+0

South在django項目中被廣泛採用作爲遷移工具,事實上它很快將成爲Django核心管理工具的一個工具。 它很容易使用(除非在生產環境中執行復雜的遷移)並且穩定。 – petkostas