utoField
一个IntgerField,添加记录时它会自动增长,通常不需要指定这个字段,你如果不指定主键的话,系统会自动添加一个主键ID到你的model.
BooleanField
A true/false field.admin用checkbox来表示此类字段.
CharField
字符串字段,用于较短的字符串.
如果保存较大文本,使用TextField.
admin页面用一个文本框来表示此类字段的输入.
此类型必须有一个参数max_length,用于从数据库层和Django校验层限制该字段所允许的最大字符数.
CommaSeparatedIntegerField
用于存放逗号分隔的整数值,类似CharField,必须有max_length参数
DateField
一个日期字段,共有参数:
auto_now:当对象被保存时,自动将该字段的值设置为当前时间.通常用于last-modifed时间戳.
auto_now_add:当对象首次被录入时,自动将该字段设置为当前时间.
admin页用一个文本框表示该字段数据,并且有一个日期选择框.
DateTimeField
一个日期时间字段,类似DateField支持同样的附加选项.
EmailField
一个带有检查Email合法性的CharField,不接受max_length参数.
FileField
一个文件上传字段.
要求一个必有参数:upload_to(),一个用于保存上传文件的本地文件系统路径,这个路径必须拿strftine_imformation,该模式将被被上传的文件的文件名以时间戳形式命名.
FieldPathField
可选项目为某个特定目录下的文件名,支持三个特殊的参数,其中第一个是必须提供的.
path:必须,一个目录的绝对文件系统路径.FilePathField据此得到可选项目。”/home/images”.
match:可选,一个正则表达式,作为一个字符串,FilePathField将使用它过滤文件名,这个表达式只应用到base filename而不是路径全名.
recursive:可选则,布尔值,默认False,包括path下面的全部子目录。
FloatField
max_digits:总位数,不包括小数点和符号
decimal_places:小数位数
例如:保存最大为999(小数位数保存2位),你要这样定义字段:
models.FloatField(max_digits=5,decimal_places=2)
ImageField
类似FileField,不过要校验上传对象是否是一个合法图片,他有两个可选参数height_field、with_field,如果这2个参数,图片将按照提供的高度和宽度规格保存。同样也有upload_to参数设置上传路径.
IntegerField
保存整数
IPAddressField
一个IP地址形式的字符串,并且进行IP字符验证
NullBooleanField
类似BooleanField,不过允许NULL作为其中一个选项,推荐使用这个字段替代BooleanField.
admin页面用一个列表{‘Unknown’,’Yes’,’No’}来选择数据.
PhoneNumberField
一个带有合法美国电话号码校验的CharField
SmallIntegerField
类似IntegerField,不过只允许某个取值范围内的整数.
TextField
一个很大容量的文本字段
admin页面用一个textarea多行文本表示该字段的输入.
TiemField
URLField
一个用于保存URL并且进行数据校验的CharField,不需要max_length
XMLField
一个校验值是否为合法的TextField,必须提供参数:schema_path,它是一个用来校验文本的RelaxNG schema的文件系统路径.
从网上找了好长时间,总算是找了个差不多。因为经常用,自己又记不住,所以还是总结一下。帮助自己的同时也能帮助别人:
V=models.CharField(max_length=None[, **options]) #varchar V=models.EmailField([max_length=75, **options]) #varchar V=models.URLField([verify_exists=True, max_length=200, **options]) #varchar V=models.FileField(upload_to=None[, max_length=100, **options]) #varchar #upload_to指定保存目录可带格式, V=models.ImageField(upload_to=None[, height_field=None, width_field=None, max_length=100, **options]) V=models.IPAddressField([**options]) #varchar V=models.FilePathField(path=None[, match=None, recursive=False, max_length=100, **options]) #varchar V=models.SlugField([max_length=50, **options]) #varchar,标签,内含索引 V=models.CommaSeparatedIntegerField(max_length=None[, **options]) #varchar V=models.IntegerField([**options]) #int V=models.PositiveIntegerField([**options]) #int 正整数 V=models.SmallIntegerField([**options]) #smallint V=models.PositiveSmallIntegerField([**options]) #smallint 正整数 V=models.AutoField(**options) #int;在Django代码内是自增 V=models.DecimalField(max_digits=None, decimal_places=None[, **options]) #decimal V=models.FloatField([**options]) #real V=models.BooleanField(**options) #boolean或bit V=models.NullBooleanField([**options]) #bit字段上可以设置上null值 V=models.DateField([auto_now=False, auto_now_add=False, **options]) #date #auto_now最后修改记录的日期;auto_now_add添加记录的日期 V=models.DateTimeField([auto_now=False, auto_now_add=False, **options]) #datetime V=models.TimeField([auto_now=False, auto_now_add=False, **options]) #time V=models.TextField([**options]) #text V=models.XMLField(schema_path=None[, **options]) #text ——————————————————————————– V=models.ForeignKey(othermodel[, **options]) #外键,关联其它模型,创建关联索引 V=models.ManyToManyField(othermodel[, **options]) #多对多,关联其它模型,创建关联表 V=models.OneToOneField(othermodel[, parent_link=False, **options]) #一对一,字段关联表属性