ManyToMany 欄位的使用

2022-09-06 20:00:17 字數 927 閱讀 5682

建立乙個經典的多對多關係:一本書可以有多個作者,乙個作者可以有多本書(如下,csdn複製的)

當進行資料遷移時,會生成三張表,了解就好

1,查詢資料的操作 :

1.一本書的所有作者

b = book.objects.get(id=1) 

b.author.all()

2.乙個作者的所有書籍:

a = author.objects.get(id=1)

a.book_set.all()

2,新增資料的操作 :

a = auther.objects.get(id=1)

b = book.objects.get(id=3)   #獲取物件b

b.authors.add(a)   #將物件傳b  (如果是刪除使用b.authors.remove()a)

如果關聯物件有多個時,應該先把多個物件分別新增進去:

a  = auther.objects.filter(id__gt=4)

b = book.objects.get(id=1)

for obj in a:

b.authors.add(obj)

重點部分:使用序列化器進行新增資料(不想敲,直接上圖)

在many to many的中間表中配置索引

customer 1 n account n card n 三張表分別 30萬,60萬,90萬記錄 select from card a,account b,account card c customer d where a.card number 4518100348128286 and a.id...

使用系統字段

所有工作項型別都共享一組預定義欄位,其中部分字段標記為可報告字段。若要允許有意義的跨團隊專案報告和查詢,應盡可能多地使用這些欄位中對您的工作項型別有意義的字段。這也將使您的工作項型別在 team foundation 伺服器之間具有更好的可移植性。支援以下系統字段 欄位名引用名稱型別說明預設可報告字...

MySql enum欄位使用問題

今天在對mysql 資料庫一張表進行query操作時遇到乙個問題,原因竟然是因為表中使用了enum欄位,特此記錄之。mysql中使用enum欄位設定欄位的區間範圍,讓資料庫很好地控制欄位的值 但是也有他的弊端,如資料遷移的時候幾乎不可能被其他資料庫所支援以及接下來筆者想要說明的問題。1.首先新建一張...