2010-04-16 40 views
6

這似乎是很基本的,我一定是失去了一些東西,但在這裏不用反正...Django ForeignKey創建爲空?

有兩個型號,像這樣:

class School(models.Model): 
    name = models.CharField("Official School Name", max_length=128) 
    address = models.TextField("Address of the School", max_length=256) 
    mascot = models.CharField("Name of the School Mascot", max_length=128) 

class StudentProfile(models.Model): 
    name = models.CharField(max_length=128) 
    school = models.ForeignKey(School) 

如果學生被學校之前創建的,我怎麼給'學校'是一個默認的空值?是空白null什麼

謝謝!

回答

8

null如果您希望數據庫允許關係爲空,如果您不希望Django管理站點抱怨它爲空,則爲blank

從對「空白」的文檔:。

「請注意,這不是空不同的無效是純粹的數據庫相關,而空白是驗證相關的。如果一個場對Django的空白=真,驗證admin站點將允許輸入一個空值,如果一個字段爲空= False,則該字段將是必需的。

總之,你可能都想要。

+0

是的,我通常將FK設置爲​​兩者,如果它是可選的。 – 2010-04-16 04:07:30

+0

好吧,這有效,我曾嘗試過。我會運行manage.py flush,但顯然這不足以更新數據庫。改變它的唯一方法是刪除數據庫文件並運行manage.py syncdb。 – Scott 2010-04-16 04:50:53

+2

syncdb不會更改表格,它只會創建它們。如果你想修改模型,你必須手動完成,或者使用類似http://south.aeracode.org/ – synic 2010-04-16 04:59:16