orm之中介模型

2022-05-01 02:27:08 字數 4595 閱讀 5126

中介模型針對的是manytomany(多對多)的時候第三張表的問題,

中介模型其實指的就是我們不通過django建立第三張表,如果自己不建立第三張表,而是由django給我們建立,那就不存在中介模型

class book(models.model):

title = models.charfield(max_length=32)

authors = models.manytomanyfield(to='author')

class author(models.model):

name = models.charfield(max_length=32)

這時候django會自動幫我們建立地上那張表,如下:

這時候執行manage命令後就會生成一張第三張表,如下:

圖中可以看出,django建立foreignkey的時候會在字段後自動新增'_id',所以,我們在寫第三張表字段的時候就不用加_id了,如下:

class book(models.model):

''''''

title = models.charfield(max_length=32)

authors = models.manytomanyfield(to='author',through='book2author')

class author(models.model):

name = models.charfield(max_length=32)

class book2author(models.model):

book_id = models.foreignkey(to='book')

author_id = models.foreignkey(to='author')

1、中介模型的第三張表是自己建立的,所以可以自己任意新增額外的字段,而django自建立的第三張表的字段是固定的

2、中介模型沒有add,set  , remove,clear 方法

中介模型針對的是manytomany(多對多)的時候第三張表的問題,

中介模型其實指的就是我們不通過django建立第三張表,如果自己不建立第三張表,而是由django給我們建立,那就不存在中介模型

class book(models.model):

title = models.charfield(max_length=32)

authors = models.manytomanyfield(to='author')

class author(models.model):

name = models.charfield(max_length=32)

這時候django會自動幫我們建立地上那張表,如下:

這時候執行manage命令後就會生成一張第三張表,如下:

圖中可以看出,django建立foreignkey的時候會在字段後自動新增'_id',所以,我們在寫第三張表字段的時候就不用加_id了,如下:

class book(models.model):

''''''

title = models.charfield(max_length=32)

authors = models.manytomanyfield(to='author',through='book2author')

class author(models.model):

name = models.charfield(max_length=32)

class book2author(models.model):

book_id = models.foreignkey(to='book')

author_id = models.foreignkey(to='author')

1、中介模型的第三張表是自己建立的,所以可以自己任意新增額外的字段,而django自建立的第三張表的字段是固定的

2、中介模型沒有add,set  , remove,clear 方法

中介模型針對的是manytomany(多對多)的時候第三張表的問題,

中介模型其實指的就是我們不通過django建立第三張表,如果自己不建立第三張表,而是由django給我們建立,那就不存在中介模型

class book(models.model):

title = models.charfield(max_length=32)

authors = models.manytomanyfield(to='author')

class author(models.model):

name = models.charfield(max_length=32)

這時候django會自動幫我們建立地上那張表,如下:

這時候執行manage命令後就會生成一張第三張表,如下:

圖中可以看出,django建立foreignkey的時候會在字段後自動新增'_id',所以,我們在寫第三張表字段的時候就不用加_id了,如下:

class book(models.model):

''''''

title = models.charfield(max_length=32)

authors = models.manytomanyfield(to='author',through='book2author')

class author(models.model):

name = models.charfield(max_length=32)

class book2author(models.model):

book_id = models.foreignkey(to='book')

author_id = models.foreignkey(to='author')

1、中介模型的第三張表是自己建立的,所以可以自己任意新增額外的字段,而django自建立的第三張表的字段是固定的

2、中介模型沒有add,set  , remove,clear 方法

Orm之中介模型

中介模型針對的是manytomany 多對多 的時候第三張表的問題,中介模型其實指的就是我們不通過django建立第三張表,如果自己不建立第三張表,而是由django給我們建立,那就不存在中介模型 class book models.model title models.charfield max ...

設計模式之中介模式

中介模式 用乙個中介物件來封裝一系列的物件的互動,中介者使各物件不需要顯示地相互引用,從而使耦合鬆散,而且可以獨立地改變他們之間的互動 比如 房客與房東之間的互動過程是由中介來承擔的,房客不需要知道房東是誰,房東也不需要知道房客是誰,有什麼問題,直接找找中介就可以了。中介模式的三個物件 互動物件 中...

CPP之中介者設計模式

1 故事 公司組織去奧林匹克公園team building,主題是 把信送給加西亞 頭天,組長組織大家秘密商討,主題時如何奪取第二天的ipad2大獎的計畫。由於人員眾多,組長怕大家不認識,要求每個人用一句話形容自己,然後順時針把剩下的所有人描述自己的話再重複出來,這樣經過2輪,名字基本記住了,雖然免...