Django 常用字段类型以及参数

一、常用字段类型

看完上一节的基本概念之后,我们接下来了解具体实现。

来看一下上一节的一行代码

name = models.CharField(max_length=50, verbose_name="名称")

你可能要问CharField是什么鬼,它就是这个字段在数据库中的你设置的类型

1.数值型

  • AutoField  类型为int(11)自增主键 Django Model默认提供,可以被重写,完整定义是
id = models.AutoField(primary_key=True)
  •  BooleanField  类型为tinyint(1)。布尔类型字段,一般用于记录状态标记。
  • DecimalField  类型为decimal。开发对数据精度要求较高的业务时考虑使用,比如支付金融等。定义时需要指定精确到多少位,例如:定义长度为8,精度为2位的数字
cash = models.DecimalField(max_digits=8, decimal_places=2, default=0, verbose_name="消费金额")

如果想定义666.66这样的数字

需要定义max_digits = 5, decimal_places=2

同时在python中也要使用Dcimal类型来转换数据(from decimal import Decimal)

  • IntegerField  类型为int(11)它同AutoField一样,唯一的差别就是不自增
  • PositiveIntegerField  同IntergerField,只包含整数
  • SmallIntegerField  类型为smallint,小整数时一般会用到

2.字符型

除了TextField是longtext类型外,其他均属于varchar类型。

  • CharField varchar  基础的varchar类型
  • URLField  继承自CharField,但是实现了对URL的特殊处理
  • UUIDField  char(32)除了在PostgreSQL中使用的是UUID类型为,其他数据库中均是固定长度的32,用来存放生辰的唯一id
  • EmailField  同UUIDField一样,它继承自CharField,多了对E-mail的特殊处理
  • FileField  同UUIDField一样,它继承自CharField,多了对文件的特殊处理。当你定义一个字段为FileField时,在admin部分展示时会自动生成一个可上传文件的按钮。
  • TextField   类型为longtext,一般用来存放大量文本内容,比如新闻正文,博客正文
  • ImageField  继承FileField,用来处理图片相关的数据,在展示上会有不同

3.日期类型

  • dateField  日期 
  • DateTimeField  日期时间 
  • TimeField  时间

4.关系类型

外键和一对一其实是一种,只是一对一在外键的字段上加了unique,多对多会创建一个中间表

  • ForeignKey
  • OneToOneField
  • ManyToManyField

二、参数

null  可以同blank对比考虑,其中null用于设定在数据库层面是否允许为空

blank  针对业务层面,该值是否允许为空

choices  配置字段的choices后,在admin页面就可以看到对应的可选项展示

db_column  这个参数可以指定Model中的某个字段对应数据库中的哪个字段

db_index  索引配置对于业务上需要进行作为查询条件的字段,应该配置此项

default  默认配置

editable  是否可编辑,默认是True。如果不想将这个字段展示到页面上,可以配置为 False

error_messages  用来自定义字段值效验失败时的异常提示,它是字典格式。

help_text  字段提示语,配置这一项后,在页面对应字段的下方会展示此配置。

primary_key  主键 一个Model只允许设置一个字段为primary_key

unique  唯一约束,当需要配置唯一值时,设置unique=True ,设置此项后,不需要设置db_index

unique_for_date  针对date的联合约束,比如我们需要一天只能有一篇名《学习Django》的文章,那么可以在定义title字段时配置参数unique_for_date="created_time"(这并不是数据库层的约束)

unique_for_month  针对月份的联合约束

unique_for_year  针对年份的联合约束

verbose_name  字段对应的展示文案

validators  自定义效验逻辑

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值