Django多對多表的三種建立方式

2022-07-20 06:45:11 字數 1456 閱讀 9562

django orm自動幫我們建立:

表一:

class

book(models.model):

name = models.charfield(max_length=32)

authors = models.manytomanyfield(to='

author

')

表二:

class

author(models.model):

name = models.charfield(max_length=32)

這種方式可以讓django迅速的幫我們建一張關係表出來,好處是可以通過這張表進行跨表查詢,壞處是一張虛擬表,拓展性差。

存手動建立第三張表:

class

book(models.model):

name = models.charfield(max_length=32)

class

author(models.model):

name = models.charfield(max_length=32)

class

book2author(models.model):

book = models.foreignkey(to='

book')

author = models.foreignkey(to='

author')

info = models.charfield(max_length=32)

這種方式無法通過orm跨表查詢(不要使用)

半自動建立第三張表(可拓展性高,並且能夠符合orm查詢)

class

book(models.model):

name = models.charfield(max_length=32)

authors = models.manytomanyfield(to='

author

',through='

book2author

',through_fields=('

book

','author

')) #

哪張表建立的就優先寫哪張表的小寫

class

author(models.model):

name = models.charfield(max_length=32)

class

book2author(models.model):

book = models.foreignkey(to='

book')

author = models.foreignkey(to='

author')

info = models.charfield(max_length=32)

Django 多對多表的三種建立方式

第一種 class book models.model name models.charfield max length 32 第一種自動建立 authors models.manytomanyfield to author class author models.model name models...

Django中ORM多對多三種建立方式

一 多對多三種建立方式 1.全自動 利用orm自動幫我們建立第三張關係表class book models.model name models.charfield max length 32 authors models.manytomanyfield to author class author ...

Django多對多的建立

1.多對多建立的應用場景 在某錶中建立一行資料是,有乙個可以多選的下拉框 例如 建立使用者資訊,需要為使用者指定多個愛好 2.建立方式 方式一 自定義關係表,手動建立一張表用於關聯其他多張表的關係 class host models.model nid models.autofield primar...