ORM关联数据的逻辑是:

Django 中常见的模型字段类型及其含义:
AutoField:一个自动递增的整型字段,添加记录时它会自动增长。BigAutoField:一个自动递增的 biginteger字段,添加记录时它会自动增长。CharField:用于存储字符类型的数据,如姓名、地址、电话等。TextField:用于存储长文本类型的数据,如文章、评论等。IntegerField:用于存储整数类型的数据,如年龄、数量等。BigIntegerField:用于存储 biginteger类型的数据,比 IntegerField 更大。SmallIntegerField:用于存储 smallinteger类型的数据,比 IntegerField 更小。FloatField:用于存储浮点数类型的数据,如温度、海拔等。DecimalField:用于存储十进制类型的数据,如金额、分数等。它可以设置最大位数和小数点后的位数,支持四舍五入等设置。BooleanField:用于存储布尔类型的数据,如是否、开关状态等。它只能接受 True 或 False 两个值。DateField:用于存储日期类型的数据,如出生日期、有效期等。DateTimeField:用于存储日期和时间类型的数据,如创建时间、修改时间等。它可以设置日期和时间的格式、时区等。TimeField:用于存储时间类型的数据,如开始时间、结束时间等。FilePathField:用于存储文件路径类型的数据,它可以选择指定的文件路径。CharField:用于存储文件路径类型的数据,它可以选择指定的文件路径。EmailField:用于存储电子邮件地址类型的数据。SluginField:用于存储滑块类型的数据,它可以在一个范围内滑动并进行选择。
常用的模型字段参数及其含义:
default:用于指定该字段的默认值。- 如果一个字段没有指定
default参数,则在创建新的模型实例时,该字段将默认为None或该字段类型的空值。 - 如果一个字段的
default参数是一个值,则在创建新的模型实例时,该字段将默认为该值。 - 如果一个字段的
default参数是一个函数,则在创建新的模型实例时,该字段将调用该函数来获取默认值。
- 如果一个字段没有指定
choices:用于限制该字段的可选值。- 如果一个字段的
choices参数是一个元组或列表,则该字段的可选值必须是其中之一。 - 如果一个字段的
choices参数是一个函数,则该字段在表单中显示时将调用该函数来获取可选值。
- 如果一个字段的
max_length:用于限制该字段的最大长度。- 如果一个字段是字符类型(如
CharField或TextField),则max_length参数指定该字段的最大长度。 - 如果一个字段是数字类型(如
IntegerField或FloatField),则max_length参数无效。
- 如果一个字段是字符类型(如
min_length:用于限制该字段的最小长度。- 如果一个字段是字符类型(如
CharField或TextField),则min_length参数指定该字段的最小长度。 - 如果一个字段是数字类型(如
IntegerField或FloatField),则min_length参数无效。
- 如果一个字段是字符类型(如
validators:用于指定对该字段进行验证的验证器列表。- 如果一个字段的
validators参数是一个验证器函数列表,则这些验证器函数将在保存该字段的值之前对其进行验证。 - 如果一个字段的
validators参数是一个字符串列表,则这些字符串将作为参数传递给一个内置的验证器函数(例如django.core.validators.validate_email)。
- 如果一个字段的
default_validators:用于指定对该字段进行默认验证的验证器列表。- 如果一个字段的
default_validators参数是一个验证器函数列表,则这些验证器函数将在保存该字段的值之前对其进行默认验证。
- 如果一个字段的
help_text:用于指定该字段在表单中的帮助文本。- 如果一个字段的
help_text参数是一个字符串,则该字符串将被用作该字段在表单中的帮助文本,以提供额外的用户指导。
- 如果一个字段的
db_column:用于指定该字段在数据库表中的列名。- 如果一个字段的
db_column参数是一个字符串,则数据库表中的该列将使用该字符串作为列名。
- 如果一个字段的
db_tablespace:用于指定该字段在数据库表中的表空间名。- 如果一个字段的
db_tablespace参数是一个字符串,则数据库表中的该字段将存储在该表空间中。
- 如果一个字段的
unique:用于指定该字段是否是唯一的。- 如果一个字段的
unique参数为True,则在数据库表中,该字段的值必须是唯一的。 - 如果一个字段的
unique参数为False(默认值),则在数据库表中,该字段的值可以重复出现。
- 如果一个字段的
null:用于指定该字段是否允许为空值。- 如果一个字段的
null参数为True,则在数据库表中,该字段可以为空值 NULL。 - 如果一个字段的
null参数为False(默认值),则在数据库表中,该非空字段必须有一个非空的值。
- 如果一个字段的
blank:用于指定该字段是否允许为空字符串。- 如果一个字段的
blank参数为 True,则在表单中提交该非空
- 如果一个字段的
几种常用的方式:
#无约束
depart_id = models.BigIntegerField(verbose_name="部门ID")
1.有约束
#- to,与那张表关联
#- to_field,表中的那一列关联
2.django自动
#- 写的depart
生成数据列 depart_id
3.部门表被删除
3.1 级联删除(部门删除,他的关联部门下的人都会被删除)
depart = models.ForeignKey(to="Department",to_field="id",on_delete=models.CASCADE)
3.2 置空(部门删除,他的关联部门下的人不会被删除,部门ID显示null)
depart=models.ForeignKey(to="Department",to_field="id",null=True,blank=True,on_delete=models.SET_NULL)
再来一些参考:
class Department(models.Model):
"""创建部门表"""
models.CharField(verbose_name='标题',max_length=32)
class UserInfo(models.Model):
"""创建员工表"""
name = models.CharField(verbose_name="姓名",max_length=16)
password=models.CharField(verbose_name="密码",max_length=32)
age = models.IntegerField(verbose_name="年龄")
account = models.DecimalField(verbose_name="账户余额",max_digits=18,decimal_places=2,default=0)
create_time = models.DateTimeField(verbose_name="创建时间")
depart = models.ForeignKey(to="Department",to_field="id",on_delete=models.CASCADE)
gender_choices=(
(1,"男")
(2,"女")
)
gender = models.SmallAutoField(verbose_name="性别",choices=gender_choices)

















![[VUE学习]权限管理系统前端vue实现9-动态路由,动态标签页,动态面包屑](https://img-blog.csdnimg.cn/88feb019735b4c2cb1bac84d3c30699a.png)

