模型_字段的介绍
模型类的属性对应数据库中表的字段,都是对应的 Field 类的实例
常见的字段
字段命名限制
- 字母,数字,下划线,首字母不能是数字
- 字段名称不能是 Python 保留字
- 由于 Django 查询查找语法的工作方式,字段名称不能在一行中包含多个下划线,譬如“abc__123”就是不允许的,一个下划线是可以的,如:'first_name'
主键的使用
默认会自动创建一个自增,主键的 id 列
如果指定了 primary_key 为其它列,那么不会自动创建 id 列
例如:
id = models.AutoField(primary_key=True)
常见的字段列表
官方文档:https://docs.djangoproject.com/zh-hans/4.1/ref/models/fields/#field-types
字段名 | 作用 |
---|---|
AutoField | 自增一个 IntegerField,根据可用的 ID 自动递增 |
BooleanField | 该字段的默认表单部件是 checkbox,默认值是 None |
CharField | 一个字符串字段 |
DateField | 一个日期,在 Python 中用一个 datetime.date 实例表示 |
DateTimeField | 一个日期和时间,在 Python 中用一个 datetime.datetime 实例表示 |
FloatField | 在 Python 中用一个 float 实例表示的浮点数 |
SmallIntegerField | 就是一个 IntegerField, -32768 到 32767 的值 |
IntegerField | 一个整数。从 -2147483648 到 2147483647 的值 |
TextField | 一个大的文本字段。该字段的默认表单部件是一个 Textarea |
特别的说明
import uuid
from django.db import models
class MyUUIDModel(models.Model):
# uuid.uuid4 千万别写成 uuid.uuid4() ,不要写 ()
id = models.UUIDField(primary_key=True, default=uuid.uuid4)
常见的属性
max_length:字段最大长度,用于字符串等,字符串类型 CharField 必须设置该值
null:如果 True,Django 将在数据库中存储 NULL 空值。默认是 False
blank:如果 True,该字段被允许为空白("")。默认是 False。
注意
这不同于 null。null 纯粹是与数据库相关的,而 blank 与验证相关。如果一个字段有 blank=True,表单验证将允许输入一个空值。如果一个字段有 blank=False,该字段将是必需的
choices:
示例:YEAR_IN_SCHOOL_CHOICES = (('FR', 'Freshman'),('SO', 'Sophomore'),('JR', 'Junior'),('SR', 'Senior'),('GR', 'Graduate')) ,
中文示例:SEX_CHOICES=((1, '男'),(2, '女'))
元组中的第一个元素是将存储在数据库中的值,第二个元素是将在页面中显示的值,最常见用于下拉选择框 select
default:字段的默认值
help_text:用于显示额外的“帮助”文本
primary_key:如果 True,这个字段是模型的主键,默认是 False
unique:如果 True,该字段在整个表格中必须是唯一的
verbose*name:详细字段名,不指定则是属性名的小写,并且用 空格 替换 '_'
from django.db import models
class User(models.Model):
first_name = models.CharField(max_length=32,default="刘春龙")
last_name = models.CharField(max_length=32)
phone_number = models.CharField(max_length=32,unique=True)
class Meta:
db_table = 't_user'