Django的模型Field

 

域 类型 (Field types

一、数值类

1、整型

(1)IntegerField

 整型,范围 [-2147483648, 2147483647] ,即 [-2^31, 2^31-1],32位系统能够存储的最大的符号型整型常量 2147483647 (首位为符号位,又有0占位,故而是2^31-1)

(2)SmallIntegerField

 短(小)整型,取值范围依赖于数据库类型,范围 [-32768, 32767] 适用于所有 Django支持的数据库,即 [-2^15, 2^15-1]

(3)BigIntegerField

 长(大)整型,范围 [-9223372036854775808, 9223372036854775807],即 [-2^63, 2^63-1],64位系统能够存储的最大的符号型整型常量 9223372036854775807

(4)CommaSeparatedIntegerField

 带逗号的整数,已废弃

原文:CommaSeparatedIntegerField is removed except for support in historical migrations.

(5)PositiveIntegerField

非负整型,范围 [0, 2147483647],即 [0, 2^31-1]

(6)PositiveSmallIntegerField 

 非负短整型,取值范围依赖于数据库类型,范围 [0, 32767] 适用于所有 Django支持的数据库,即 [0, 2^15-1]

 

2、浮点型

(1)FloatField

 浮点型

(2)DecimalField

高精度浮点型,一般用以存储高精确值,如金额

 

二、布尔

(1)BooleanField

 布尔类型,只允许 true/false 两个值

(2)NullBooleanField

 可空布尔类型,允许为 null

 

三、字符类

(1)CharField

 普通字符型

(2)TextField

文本型,长字符型

 

四、时间类

(1)TimeField

 时间类

(2)DateField

 日期类

(3)DateTimeField

 日期时间类

(4)DurationField

 期间类

 

五、其他

1、地址类 

(1)FilePathField

 文件路径

(2)IPAddressField

 点分十进制表示的 IP 地址,如 127.0.0.1,建议使用 GenericIPAddressField 代替

(3)GenericIPAddressField

  通用IP地址,同时支持IP v4和 IP v6,是 IPAddressField 的加强版

(4)EmailField

 邮件地址

(5)URLField

 URL地址

(6)SlugField

 标准URL,只支持字母、数字、下划线、连字符

 

2、字节类

(1)BinaryField

 

3、ID类

(1)AutoField

 自增主键,整型类

(2)BigAutoField

 自增主键,大整型类

(3)UUIDField

UUID类型

 

 

关联 域(Relationship fields

一、ForeignKey

1、作用

关联外键,两个必须项:依赖对象 和 删除模式

2、属性

(1)on_delete

本记录删除时,关联记录作何种关联动作

  [1] CASCADE:级联删除

  [2] PROTECT:受保护,不允许删除,抛出 ProtectedError

  [3] SET_NULL:置空

  [4] SET_DEFAULT:恢复默认

  [5] SET():方法引用

  [6] DO_NOTHING:无动作

 

(2)limit_choices_to

(3)related_name

(4)related_query_name

(5)to_field

(6)db_constraint

(7)swappable


二、OneToOneField

1、作用

2、属性

(1)parent_link


三、ManyToManyField

1、作用

2、属性

(1)related_name

(2)related_query_name

(3)limit_choices_to

(4)symmetrical

(5)through

(6)through_fields

(7)db_table

(8)db_constraint

(9)swappable

 

域 选项(Field options

(1)null

布尔类型值,用以声明数据库中该字段是否可以为空,默认 False

 

(2)blank

布尔类型值,用以声明表单中该字段是否可以为空,默认 False

 

(3)default

默认值,必须为可调对象,类实例、setlist、lambdas 不能作为默认值

外键类型的默认,应为外键值本身,而不是外键的实例

 

(4)choices

二元元组的列表,如 [('a','A'), ('b', 'B'), ('c', 'C')],二元元组的第一个值用于存储数据库,第二个值用于 表单显示

类似于 html 中的 下拉框 select下 option 的 value 和 text

 

(5)primary_key

布尔类型值,用以声明主键约束,当声明了 primary_key=True时,则必须同时声明 null=False 且 unique=True

当 模型所有属性(字段)都未声明 主键约束时,Django自动创建一个自增属性作为 主键约束

 

(6)unique

布尔类型值,用以声明唯一性,当执行 save() 时,该字段若存在重复值,则报出 django.db.IntegrityError 错误

unique 对 外键 ManyToManyFieldOneToOneField 是无效的

声明 unique=True 时,Django自动为之创建 索引

 

(7)unique_for_date

布尔类型值,用以声明日期唯一性,原则与 unique 类似

 

(8)unique_for_month

布尔类型值,用以声明月份唯一性,原则与 unique 类似

 

(9)unique_for_year

布尔类型值,用以声明年份唯一性,原则与 unique 类似

 

(10)editable

布尔类型值,用以声明是否可编辑,默认 True

当声明 editable=False 时,字段将不显示在表单内,且表单提交时忽略该字段

 

(11)validators

校验器,类型为校验函数的列表

 

(12)error_messages

字典类型,用以指定值错误时的抛出信息

支持 null, blank, invalid, invalid_choice, uniqueunique_for_date 作为字典的键

 

(13)help_text

字符类型,用以指定表单提示信息,类似 html 中的 tip

 

(14)verbose_name

字符类型,用以指定外键信息,当外键不指定该属性时,Django自动以该字段名为值,并替换下划线为空格

 

(15)db_column

字符型,用以指定 数据库列名,尤其当 列名为SQL或Python保留字时有效

不指定该值时,自动以字段名为数据库列名

 

(16)db_index

布尔类型值,用以指定是否为该数据库列 创建索引,默认False

 

(17)db_tablespace

字符类型,用以声明索引的名称,当且仅当 db_index=True 时有效

 

域 属性

(1) auto_created

(2)concrete

(3) hidden

(4) is_relation

(5) model
 

域 函数/方法

(1)get_internal_type()

(2)db_type()

(3)rel_db_type()

(4)get_prep_value()

(5)get_db_prep_value()

(6)from_db_value()

(7)get_db_prep_save()

(8)pre_save()

(9)to_python()

(10)value_from_object()

(11)value_to_string()

(12)formfield()

(13)deconstruct()

 

域 关联属性

(1)many_to_many

(2)many_to_one

(3)one_to_many

(4)one_to_one

(5)related_model


 

参考资料:

Django中文官方:https://docs.djangoproject.com/zh-hans/2.2/

Django模型域中文:https://docs.djangoproject.com/zh-hans/2.2/ref/models/fields/

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值