首页 > 代码库 > django源码解析之 BooleanField (三)

django源码解析之 BooleanField (三)

1     def __init__(self, *args, **kwargs):2         kwargs[blank] = True3         if default not in kwargs and not kwargs.get(null):4             kwargs[default] = False5         Field.__init__(self, *args, **kwargs)

在看完 BooleanField 的 to_python 之后,我们来看看 __init__ 

 

先看看我从github上copy的一段代码

    login_required = models.BooleanField(        _(login required), default=False,        help_text=_(Only authenticated users can view the entry.))

这是一个非常常见的使用 BooleanField 示例。

我们继续看 __init__ 

首先,添加了 blank=True ,然后判断选项中是否设置了 default ,且未添加 null 属性

请看代码

>>> d = {}>>> d.get(null) == TrueFalse>>> d = {null:1234}>>> d.get(null) == TrueFalse>>> 

 

至于添加null后会出现什么情况,回头试试就知道了。

django源码解析之 BooleanField (三)