我有這個模型允許外鍵給用戶空值。 Django的
class Vacancy(models.Model):
user = models.ForeignKey(User, null=True, blank=True, default = None)
name = models.CharField(max_length=64)
當管理員我試圖創造一個空缺沒有用戶。它會拋出一個錯誤「club_vacancy.user_id可能不是NULL」。 我做錯什麼了嗎?
我有這個模型允許外鍵給用戶空值。 Django的
class Vacancy(models.Model):
user = models.ForeignKey(User, null=True, blank=True, default = None)
name = models.CharField(max_length=64)
當管理員我試圖創造一個空缺沒有用戶。它會拋出一個錯誤「club_vacancy.user_id可能不是NULL」。 我做錯什麼了嗎?
club_vacancy.user_id may not be NULL
看起來非常像從數據庫中的錯誤,而不是從Django的。
它似乎最有可能你運行manage.py syncdb
後添加null=True
。您需要修改數據庫模式以允許該列中的空值。
你需要重置你的數據庫表(因爲只是執行syncdb不更新被alredy與空創建的字段= FALSE)
./manage.py重置your_app
或有一些數據你不想鬆散地使用SQL命令來刪除NOT NULL標誌
除了南方以外,另一種選擇是使用django進行模式更改。
http://code.google.com/p/django-evolution/
進行dB變化之前安裝它。然後運行
python manage.py evolve --hint --execute
確保如果添加了一個新的領域,你允許空值(null=True
),或者演變會給你一個錯誤消息。
嗯,我跑前執行syncdb後,我加入空=真。我應該如何修改我的分貝? – barin 2009-11-28 20:09:29
執行syncdb不修改已經存在的表。刪除表並再次運行syncdb,或手動修改數據庫,或使用遷移應用程序。 – 2009-11-28 20:52:25
遷移應用程式,例如「南」 – panchicore 2009-11-28 21:47:42