Django models中關於blank與null的補充說明
阿新 • • 發佈:2018-11-19
Django models中關於blank與null的補充說明
建立一個簡易Model
class Person(models.Model): GENDER_CHOICES=( (1,'Male'), (2,'Female'), ) name=models.CharField(max_length=30,unique=True,verbose_name='姓 名') birthday=models.DateField(blank=True,null=True) gender=models.IntegerField(choices=GENDER_CHOICES) account=models.IntegerField(default=0)
blank
設定為True時,欄位可以為空。設定為False時,欄位是必須填寫的。字元型欄位CharField和TextField是用空字串來儲存空值的。
如果為True,欄位允許為空,預設不允許。
null
設定為True時,django用Null來儲存空值。日期型、時間型和數字型欄位不接受空字串。所以設定IntegerField,DateTimeField型欄位可以為空時,需要將blank,null均設為True。
如果為True,空值將會被儲存為NULL,預設為False。
如果想設定BooleanField為空時可以選用NullBooleanField型欄位。
一句話概括
null 是針對資料庫而言,如果 null=True, 表示資料庫的該欄位可以為空。
blank 是針對表單的,如果 blank=True,表示你的表單填寫該欄位的時候可以不填,比如 admin 介面下增加 model 一條記錄的時候。直觀的看到就是該欄位不是粗體