CharField和TextField:这可能是你会遇到的最常用的变量类型了,这两个类型基本上是一样的------作用都是保存文本。区别在于CharField是定长的,而TextField的长度则可以是无线的,具体使用哪一个要看需要
EmailField、URLField和IPAddressField:这三个变量其实就是CharField加上一点额外的验证。它和CharField一样存储在数据库里,但是包含了验证代码来保证它们的值分别是有效的E-mail地址、URL和IP地址。你也可以很轻松的在模型变量上加入验证来创造出你自己的“变量类型”,这些类型和Django的内置类型是平等的。
BooleanField和NullBooleanField:BooleanField大多适用于你要存储True或False值的场景,但是有时候你还不知道要存储哪个值的时候就需要更大的回旋余地----这时变量可以是空的或null的,所以就出现了NullBooleanField。这个特性体现了有时候在为数据建模的时候不但要在语义层面考虑问题,同时还需要有技术层面的考量------即不仅要关心数据是如何存储的,还要关心他的意义。
FileField:FileField是最复杂的变量之一,因为大多数时候所有和它有关的工作和数据库一点关系都没有,相反主要是由于框架本身的需求。FileField只在数据库里保存了一个文件的路径,和它的近亲FilePathField很像,但是它允许用户从浏览器上传一个文件,并将它保存在服务器上。它还在模型对象里提供了访问网页URL的方法来接受要上传的文件。