Django 模型字段类型和字段参数总结

  1. models.AutoField

作用说明:默认生成列名为 id 的列,并设置为主键

数据类型:int(11)

必备参数:primary_key = True 作为主键存在

主键django会默认自带

ColName = models.AutoField(primary_key = True)
2. models.CharField

作用说明:字符串字段,长度小于255

数据类型:varchar(50)

必备参数:max_length = 50 设置字段长度为50

ColName = mode3. models.BooleanFieldls.CharField(max_length = 50)
3. models.BooleanField

作用说明:布尔类型字段

数据类型:tinyint(1)

必备参数:Blank=True ,字段不能为空

ColName = models.BooleanField (Blank = True)
4. models.ComaSeparatedIntegerField

作用说明:逗号分割的数字

数据类型:varchar(50)

必备参数:max_length = 50 设置字段长度为50

ColName = models.ComaSeparatedIntegerField(max_length = 50)
5. models.DateField

作用说明:日期类型

数据类型:date

必备参数:default = timezone.now 修改字段保存当前时间

from django.utils import timezone
ColName = models.DateField(default = timezone.now)

  1. models.DateTimeField

作用说明:日期类型

数据类型:datetime

必备参数:default = timezone.now 修改字段保存当前时间

from django.utils import timezone
ColName = models.DateTimeField(default = timezone.now)

  1. models.DecimalField

作用说明:十进制小数类型,保留几位小数

数据类型:decimal

必备参数:最大位数max_digits = 10 和小数位decimal_places = 2

from django.utils import timezone
ColName = models.DecimalField(max_digits = 10 , decimal_places = 2)

  1. models.EmailField

作用说明:电子邮箱字段

数据类型:varchar,必须是email类型

必备参数:无

ColName = models.EmailField()
9. models.FloatField

作用说明:浮点型字段

数据类型:float

必备参数:最大位数max_digits = 10 和小数位decimal_places = 2

ColName = models.FloatField(max_digits = 10,decimal_places = 2)
10. models.IntegerField

作用说明:整数类型

数据类型:int

必备参数:无

ColName = models.IntegerField()
11. models.BigIntegerField

作用说明:长整数类型

数据类型:int

必备参数:无

ColName = models.BigIntegerField()
12. models.IPAddressField

作用说明:IP字段存储类型

数据类型:varchar

必备参数:无

ColName = models.IPAddressField()
13. models.GenericIPAddressField

作用说明:可选ip4和ip6字段存储类型

数据类型:varchar

必备参数:protocol (both,ipv4,ipv6)

ColName = models.GenericIPAddressField(protocol = both)
14. models.NullBooleanField

作用说明:允许空的布尔类型

数据类型:varchar

必备参数:无

ColName = models.NullBooleanField(protocol = both)
15. models.PositiveIntegerField

作用说明:负整数类型

数据类型:int

必备参数:无

ColName = models.PositiveIntegerField()
16. models.PositiveSmallIntegerField

作用说明:负数字字段类型tinyint、smallint、int、bigint

数据类型:varchar

必备参数:无

ColName = models.PositiveSmallIntegerField()
17. models.SlugField

作用说明:字段必须包含减号、下划线、字母、数字

数据类型:varchar

必备参数:无

ColName = models.SlugField()
18. models.SmallIntegerField

作用说明:数字字段类型tinyint、smallint、int、bigint

数据类型:varchar

必备参数:无

ColName = models.SmallIntegerField()
19. models.TextField

作用说明:长文本类型

数据类型:longtext

必备参数:无

ColName = models.TextField()
20. models.TimeField

作用说明:时间类型 HH:MM:SS

数据类型:datetime

必备参数:无

ColName = models.TimeField()
21. models.URLField

作用说明:url链接类型

数据类型:varchar

必备参数:无

ColName = models.URLField()
22. models.BinaryField

作用说明:二进制类型

数据类型:varchar

必备参数:无

ColName = models.BinaryField()
23. models.ImageField

作用说明:图片类型,保存成图片地址

数据类型:varchar

必备参数:无

ColName = models.ImageField()
24. models.FilePathField

作用说明:文件地址类型,根据地址选择匹配文件

数据类型:varchar

必备参数:path(文件的路径)

ColName = models.FilePathField(path='绝对路径')
25. models.FileField

作用说明:文件上传功能

数据类型:varchar

必备参数:upload_to

ColName = models.FileField(upload_to='绝对路径')
26. models.PhoneNumberField

作用说明:11位电话号码

数据类型:varchar(XXX-XXX-XXXX)

必备参数:无

ColName = models.PhoneNumberField()
Models 字段参数

  1. null=True

字段可为空

  1. blank=True

Admin后台中添加数据时是否可允许空值

  1. primary_key = False

主键,对AutoField设置主键后,就会代替原来的自增 id 列

  1. auto_now 和 auto_now_add

auto_now 自动创建---无论添加或修改都是当前修执行动作时间

auto_now_add 自动创建---永远是创建时的时间

  1. choices

创建关联选项

GENDER_CHOICE = (
('M', 'Male'),
('F', 'Female'),
)
gender = models.CharField(max_length=2,choices = GENDER_CHOICE)

  1. max_length

字段最大长度

  1. default

字段默认值

  1. verbose_name

Admin后台中字段的显示名称

  1. name或db_column

数据库中的字段名称

  1. unique=True

不允许重复值出现

  1. db_index = True

数据库索引

  1. editable=True

Admin后台中中是否可编辑

  1. error_messages=None

错误提示

GENDER_CHOICE = (
(u'M', u'Male'),
(u'F', u'Female'),
)
gender = models.CharField(max_length=2,choices=GENDER_CHOICE,error_messages={"错误类型":"错误原因"})

  1. auto_created=False

自动创建

  1. help_text

Admin后台中提示帮助信息

  1. validators=[]

提示区间,例如电话号码范围

  1. upload-to

指明上传的文件防止根目录下的/upload/文件夹下

file_path = modles.FileField(upload-to = "./upload/")

posted @ 2024-07-15 16:28  星空28  阅读(22)  评论(0编辑  收藏  举报