十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)django中blank和null的區(qū)別有哪些,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
一、null的使用
1、默認(rèn)是False的,如果設(shè)置為True的時(shí)候,django將會(huì)映射到數(shù)據(jù)表指定是否為空
2、如果這個(gè)字段設(shè)置為False的時(shí)候,如果沒給這個(gè)字段傳遞任何值的時(shí)候,django也會(huì)使用一個(gè)空字符串('')存儲(chǔ)進(jìn)去
3、如果這個(gè)字段設(shè)置為True的時(shí)候,django會(huì)產(chǎn)生兩種空值的情形(null和空字符串)
4、如果想要在表單驗(yàn)證的時(shí)候允許這個(gè)字符串為空的時(shí)候,django建議使用blank=True
5、如果你的字段BooleanField的時(shí)候,可以為空的建議使用NullBooleanField
1、數(shù)據(jù)模型代碼
class BookModel(models.Model): """ 書籍的數(shù)據(jù)模型 """ uuid = models.UUIDField(unique=True, default=uuid.uuid4, verbose_name='uuid') name = models.CharField(max_length=100, default='', null=True, verbose_name='書籍名稱') # null默認(rèn)是False,但是本案例中還是寫上去,更好區(qū)分 author = models.CharField(max_length=100, default='', null=False, verbose_name='作者') # blank=True僅僅是在表單校驗(yàn)的時(shí)候可以為空,別的時(shí)候沒什么區(qū)別 price = models.FloatField(default=0, blank=True, verbose_name='價(jià)格') create_time = models.DateTimeField(auto_now_add=True, verbose_name='創(chuàng)建時(shí)間') update_time = models.DateTimeField(auto_now=True, verbose_name='修改時(shí)間') def __str__(self): return '({}, {}, {}, {}, {}, {})'.format(self.uuid, self.name, self.author, self.price,self.create_time, self.update_time) class Meta(object): db_table = 'book'