• 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 可能对数据完整性非常不利。

    讨论群:249728408
  • 相关阅读:
    《Android源码设计模式》--装饰模式
    弹出对话框输入框
    顶部搜索框背景色渐变
    《Android源码设计模式》--模板方法模式
    《Android源码设计模式》--状态模式--责任链模式--解释器模式--命令模式--观察者模式--备忘录模式--迭代器模式
    《Android源码设计模式》--策略模式
    《Android源码设计模式》--抽象工厂模式
    《Android源码设计模式》--工厂方法模式
    《Android源码设计模式》--原型模式
    《Android源码设计模式》--Builder模式
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/15191618.html
Copyright © 2020-2023  润新知