Django之ORM常用字段和字段参数

ORM字段介绍
数字字段

num = BigIntegerField() # 范围是从-9223372036854775808到 9223372036854775807
num = IntegerField()  # 范围是从-2147483648到2147483647
PositiveIntegerField()  # 0到2147483647
PositiveSmallIntegerField()  # 0到32767
SmallIntegerField()  # -32768到32767
num = models.FloatField() # 浮点
num = models.DecimalField(max_digits=9,decimal_places=4) # 精确浮点,max_digits必须大于或等于decimal_places
num = models.BinaryField(max_length=9) # 二进制数

字符串字段

name = models.CharField(max_length=32)
# 其他字符串字段
EmailField(CharField)  # 实现了对E-mail的特殊的处理
URLField(CharField)  # 实现了对URL的特殊处理
ImageField(FileField)  # 用来处理与图片相关的数据
FileField(Field)  # 实现了对文件的特殊的处理
UUIDField(Field)  # 长度一般为32,用来存放生成的唯一id
TextField(CharField)  # 一般用来存放大量的文本内容
IPAddressField(Field)
GenericIPAddressField(protocol ='both',unpack_ipv4 = False)
SlugField(CharField)
FilePathField(Field)

布尔字段

blen = models.BooleanField()

时间字段

date = models.DateField(auto_now = False,auto_now_add = False)
# auto_now 代表修改的时间
# auto_now_add 代表创建的时间
date = models.DateTimeField()
date = models.DurationField()
date = TimeField(DateField)

关系字段

ForeignKey(to)  # 多对一
ManyToManyField(to)  # 多对多
OneToOneField(to)  # 一对一

ORM字段参数

	null  # 用于设定在数据库层面是否允许为空
	blank  # 用于在表单验证时是否允许输入空值
	choices  # 一个包含有两个元素的元组的可迭代的列表,使用此字段,则表单展示为选择框,而不是文本框
	db_column  # 可以指定Model中的某个字段对应数据库中的哪个字段
	db_index  # 如果为True,将为此字段创建数据库索引。
	default  # 字段的默认值设置
	error_messages  # 用来自定义字段值校验失败时的异常提示,字典格式
	# 错误的格式(null,blank,invalid,invalid_choice, unique,和unique_for_date)
	editable  # 如果为False,该字段将不会显示在管理员或任何其他ModelForm字段中,在模型验证期间也会跳过它们。默认是True。
	help_text  # 字段提示语,配置后,在页面对应字段的下方会展示此配置
	primary_key  # 主键,django会自己创建一个自增的IntegerField字段来当作主键,字段名为'id'
	unique  # 唯一约束
	unique_for_date  # 针对日期的唯一约束
	unique_for_month  # 针对月份的唯一约束
	unique_for_year  # 针对年份的唯一约束
	verbose_name  # 用来展示字段的名称
	validators  # 自定义校验逻辑

关系型字段的参数

	on_delete = models.CASCADE  # 删除父表中的数据时,子表中关联该数据的行数据也一并删除
	on_delete = models.PROTECT  # 与上面的不同,不会一并删除,但是会提示ProtectedError异常
	on_delete = models.SET_NULL  # 将外键的字段设为null, 当null=True时才能使用
	on_delete = models.SET_DEFAULE  # 将外键的字段设为默认值,设置default=""后才能使用
	on_delete = DO_NOTHING  # 什么也不做
	on_delete = SET  # 设置一个传递给SET的值或者一个回调函数的返回值

字段名称限制

字段名称不能是Python保留字,因为这会导致Python语法错误;由于Django的查询查找语法的工作方式,字段名称不能在一行中包含多个下划线,也不能以下划线结尾

你可能感兴趣的:(django学习)