Sanic二十五:Sanic + tortoise-orm 之表关联

 

一、ForeignKeyField:外键关系字段,此字段表示与另一个模型的外键关系

1、model_name: str 已定义的模型的名称,必传
2、related_name: 外键关系名称
3、on_delete: str 默认"CASCADE"
  field.CASCADE:表示如果相关模型被删除,模型应该被级联删除。
  field.RESTRICT:表示只要有外键指向,就会限制相关模型的删除。
  field.SET_NULL:将字段重置为 NULL,以防相关模型被删除。仅当字段已null=True设置时才能设置。
  field.SET_DEFAULT:将字段重置为default值,以防相关模型被删除。只能设置是字段有default设置。

4、to_field:相关模型上的属性名称,用于建立外键关系。如果未设置,则使用 pk
5、db_constraint: bool 控制是否应在数据库中为此外键创建约束。默认值为 True,将此设置为 False 可能对数据完整性非常不利。

使用示例

执行数据库迁移

插入关联数据

查询

 

二、ManyToManyField:多对多关系字段,此字段表示此模型与另一个模型之间的多对多

1、through: 表示直通表的DB表。默认值通常是安全的
2、forward_key: 直通表上的正向查找键。默认值通常是安全的。
3、backward_key: 直通表上的向后查找键。默认值通常是安全的
4、related_name:用于反向解析多对多的相关模型上的属性名称。
5、db_constraint: 控制是否应在数据库中为此外键创建约束,默认值为True,将此设置为False可能对数据完整性非常不利。
6、on_delete: str 默认"CASCADE"
  field.CASCADE:表示如果相关模型被删除,模型应该被级联删除。
  field.RESTRICT:表示只要有外键指向,就会限制相关模型的删除。
  field.SET_NULL:将字段重置为 NULL,以防相关模型被删除。仅当字段已null=True设置时才能设置。
  field.SET_DEFAULT:将字段重置为default值,以防相关模型被删除。只能设置是字段有default设置。

 

三、OneToOneField:一对一

1、model_name: str 已定义的模型的名称,必传
2、related_name: 外键关系名称
3、on_delete: str 默认"CASCADE"
  field.CASCADE:表示如果相关模型被删除,模型应该被级联删除。
  field.RESTRICT:表示只要有外键指向,就会限制相关模型的删除。
  field.SET_NULL:将字段重置为 NULL,以防相关模型被删除。仅当字段已null=True设置时才能设置。
  field.SET_DEFAULT:将字段重置为default值,以防相关模型被删除。只能设置是字段有default设置。
4、to_field:相关模型上的属性名称,用于建立外键关系。如果未设置,则使用 pk
5、db_constraint: bool 控制是否应在数据库中为此外键创建约束。默认值为 True,将此设置为 False 可能对数据完整性非常不利。

 

posted @ 2021-08-26 22:15  向前走。  阅读(2011)  评论(0编辑  收藏  举报