Django从零开始----03Django字段类型

  • AutoField

一个 IntegerField,根据可用的 ID 自动递增。你通常不需要直接使用它;如果你没有指定,主键字段会自动添加到你的模型中。

  • BigAutoField

一个 64 位整数,与 AutoField 很相似,但保证适合 1 到 9223372036854775807 的数字。

  • BigIntegerField

一个 64 位的整数,和 IntegerField 很像,只是它保证适合从 -9223372036854775808 到 9223372036854775807 的数字。该字段的默认表单部件是一个 NumberInput

  • BinaryField

一个用于存储原始二进制数据的字段。

  • BooleanField

一个 true/false 字段。

该字段的默认表单部件是 CheckboxInput,或者如果 null=True 则是 NullBooleanSelect。

当 Field.default 没有定义时,BooleanField 的默认值是 None。

  • CharField

一个字符串字段,适用于小到大的字符串。

对于大量的文本,使用 TextField。

该字段的默认表单部件是一个 TextInput。

CharField 有两个额外的参数:

​ CharField.max_length

必须的。该字段的最大长度(以字符为单位)。

​ CharField.db_collation【Django 3.2新增参数

可选的 。该字段的数据库字符序名称。

  • DateField

一个日期,在 Python 中用一个 datetime.date 实例表示。有一些额外的、可选的参数。

​ DateField.auto_now

​ 每次保存对象时,自动将该字段设置为现在。对于“最后修改”的时间戳很有用。 请注意,当前日期 总是 被使用,而不仅仅是一个你可以覆盖的默认值。只有在 调用 Model.save() 时,该字段才会自动更新。当以其他方式对其他字段进行更 新时,如 QuerySet.update(),该字段不会被更新,尽管你可以在这样的更新中 为该字段指定一个自定义值。

​ DateField.auto_now_add

​ 当第一次创建对象时,自动将该字段设置为现在。对创建时间戳很有用。请注 意,当前日期是 始终 使用的;它不是一个你可以覆盖的默认值。因此,即使你 在创建对象时为该字段设置了一个值,它也会被忽略。如果你想修改这个字段, 可以设置以下内容来代替 auto_now_add=True :对于 DateField: default=date.today ——来自 datetime.date.today()对于 DateTimeField: default=timezone.now ——来自 django.utils.timezone.now()

该字段的默认表单部件是一个 DateInput。管理中增加了一个 JavaScript 日历,以及“今天”的快捷方式。包含一个额外的 invalid_date 错误信息键。

auto_now_add、auto_now 和 default 选项是相互排斥的。这些选项的任何组合都会导致错误。

  • DateTimeField

一个日期和时间,在 Python 中用一个 datetime.datetime 实例表示。与 DateField 一样,使用相同的额外参数。

该字段的默认表单部件是一个单独的 DateTimeInput。管理中使用两个单独的 TextInput 部件,并使用 JavaScript 快捷方式。

  • DecimalField

一个固定精度的十进制数,在 Python 中用一个 Decimal 实例来表示。

有两个 必要的 参数:

​ DecimalField.max_digits

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

​ DecimalField.decimal_places

​ 与数字一起存储的小数位数。

  • DurationField

一个用于存储时间段的字段

  • EmailField

一个 CharField,使用 EmailValidator 来检查该值是否为有效的电子邮件地址。

  • FileField

一个文件上传字段

有两个可选参数:

​ FileField.upload_to

​ 这个属性提供了一种设置上传目录和文件名的方式,可以有两种设置方式。在这 两种情况下,值都会传递给 Storage.save() 方法。如果你指定一个字符串值或一 个 Path,它可能包含 strftime() 格式,它将被文件上传的日期/时间所代替(这 样上传的文件就不会填满指定的目录)。

​ FileField.storage

​ 一个存储对象,或是一个返回存储对象的可调用对象。它处理你的文件的存储和 检索。

  • FloatField

在 Python 中用一个 float 实例表示的浮点数。

  • ImageField

继承 FileField 的所有属性和方法,但也验证上传的对象是有效的图像

  • SlugField

Slug 是一个报纸术语。slug 是一个简短的标签,只包含字母、数字、下划线或连字符。它们一般用于 URL 中

  • TextField

一个大的文本字段。该字段的默认表单部件是一个 Textarea。

  • TimeField

一个时间,在 Python 中用 datetime.time 实例表示。接受与 DateField 相同的自动填充选项。

  • URLField

URL 的 CharField,由 URLValidator 验证。

上一篇:CharField:Django文档——Model字段选项(Field Options)


下一篇:python测试开发django-12.models设置主键primary_key