1. 程式人生 > 其它 >Sanic二十五:Sanic + tortoise-orm 之表關聯

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