django Foreign Key外來鍵引數

2021-09-28 20:55:47 字數 1725 閱讀 6483

foreignkey(foreignobject)

blog = models.foreignkey(

to="blog"

, to_field=

"nid"

, on_delete=models.do_nothing)

# 外來鍵關聯部落格,乙個部落格站點可以有多個分類

字段

to,  # 要進行關聯的表名

to_field = none, # 要關聯的表中的欄位名稱

on_delete = none, # 當刪除關聯表中的資料時,當前表與其關聯的行的行為

- models.cascade,刪除關聯資料,與之關聯也刪除

- models.do_nothing,刪除關聯資料,引發錯誤integrityerror

- models.protect,刪除關聯資料,引發錯誤protectederror

- models.set_null,刪除關聯資料,與之關聯的值設定為null(前提fk欄位需要設定為可空)

- models.set_default,刪除關聯資料,與之關聯的值設定為預設值(前提fk欄位需要設定預設值)

- models.set,刪除關聯資料,

a.與之關聯的值設定為指定值,設定:models.set(值)

b.與之關聯的值設定為可執行物件的返回值,設定:models.set(可執行物件)

例:def func(

): return 10

class mymodel(models.model):

user = models.foreignkey(

to="user",

to_field=

"id"

on_delete = models.set(func),)

# 反向操作時,使用的欄位名,用於代替【表名_set】

related_name = none,

如: obj.表名_set.all(

)== obj.related_name.all(

)# 反向操作時,使用的連線字首,用於替換【表名】 如:

related_query_name = none,

models.usergroup.objects.filter(表名__欄位名=1).values(

'表名__欄位名'

)# 在admin或modelform中顯示關聯資料時,提供的條件:

limit_choices_to = none,

# 如:

- limit_choices_to =

- limit_choices_to = lambda:

from django.db.models import q

- limit_choices_to = q(nid__gt=10)

- limit_choices_to = q(nid=8)

| q(nid__gt=10)

- limit_choices_to = lambda: q(q(nid=8)

| q(nid__gt=10))

& q(caption=

'root'

)db_constraint = true # 是否在資料庫中建立外來鍵約束

parent_link = false # 在admin中是否顯示關聯資料

mysql外來鍵和外來鍵約束

1.mysql中 鍵 和 索引 的定義相同,所以外來鍵和主鍵一樣也是索引的一種。不同的是mysql會自動為所有表的主鍵進行索引,但是外來鍵字段必須由使用者進行明確的索引。用於外來鍵關係的字段必須在所有的參照表中進行明確地索引 2.如果表a的主關鍵字是表b中的字段,則該字段稱為表b的外來鍵,表a稱為主...

mysql 外來鍵和外來鍵約束

1.外來鍵 如果公共關鍵字在乙個關係中是主關鍵字,那麼這個公共關鍵字被稱為另乙個關係的外來鍵。就是a表的主鍵,被用到了b表中,此時它就成了外來鍵 2.外來鍵約束 如果想要插入或者更新外來鍵的值,資料庫會和引用表中字段的資料進行驗證,如果插入或更改的值不在被引用的表中,則插入失敗 外來鍵的作用就是保證...

外來鍵約束 外來鍵級聯操作

建立db2資料庫 create database db2 使用db2資料庫 use db2 外來鍵約束 標準語法 constraint 外鍵名 foreign key 本表外來鍵列名 references 主表名 主表主鍵列名 建表時新增外來鍵約束 建立user使用者表 create table u...