Django Field types

AutoField

  • 自动设置主键时用到的设置自动递增的id,如果我们没有设置主键,Django 会给每一个模型添加下面的字段:
    #这是一个自增的主键
    id = models.AutoField(primary_key=True)
    

BigAutoField

  • 类似于AutoField的1 到 9223372036854775807大整数字段

BigIntegerField

  • -9223372036854775808 到 9223372036854775807的64位大整数类型

BinaryField

  • 用于存储原生的二进制数据,例如bytes, bytearray, or memoryview.

BooleanField

  • true/false 字段

CharField

  • 字符类字段,超大文本使用TextField。具有max_length属性

CharField.max_length

  • 字段的最大长度

DateField

  • 日期字段,python中表现为datetime.date的实例,属性如下:

DateField.auto_now

  • 每次字段保存的时候自动设置字段值为当前时间。最适合 “last-modified” 字段时间戳.

DateField.auto_now_add

  • 记录首次添加时字段设置为当前时间,最适合creation字段。

DateTimeField

-日期时间字段,python中表现为datetime.datetime 实例,属性同DateField。

DecimalField

  • 固定的十进制数字段,python中表现为十进制实例。参数如下:

DecimalField.max_digits

  • 数字中允许的最大位数。请注意,这个数字必须大于或等于decimal_places。

DecimalField.decimal_places

  • 小数位数
models.DecimalField(..., max_digits=5, decimal_places=2)
models.DecimalField(..., max_digits=19, decimal_places=10)

DurationField

  • 用于存储时间段的字段,python中表现为timedelta.

EmailField

  • 用EmailValidator检验邮箱地址的CharField字段。

FileField

FloatField

  • 浮点数字段,Python中表现为float 实例。

ImageField

IntegerField

  • -2147483648 to 2147483647的整数字段

GenericIPAddressField

NullBooleanField

  • 支持null=True属性的BooleanField

PositiveIntegerField

  • 0 to 2147483647的正整数字段

PositiveSmallIntegerField

  • 0 to 32767的小正整数字段

SlugField

SmallIntegerField

  • -32768 to 32767小整数字段

TextField

  • 大文本字段

TimeField

  • 时间字段,python中表现datetime.time,支持的属性同DateField.

URLField

  • URLValidator校验的CharField

UUIDField

  • 存储唯一标示符的字段,python中表现为UUID 。唯一标示符一般来讲使用AutoField for primary_key更好. 数据库不会为我们生成UUID,我们可以采用以下算法:
    import uuid
    from django.db import models
    
    class MyUUIDModel(models.Model):
        id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
        # other fields
    

猜你喜欢

转载自blog.csdn.net/weixin_43430036/article/details/84177760