最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單了解django orm中介模型

 更新時間:2019年07月30日 15:12:30   作者:一顆桃子t  
這篇文章主要介紹了簡單了解django orm中介模型,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

什么是中介模型

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

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

中介模型示例

普通的ManyToMany示例

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會自動幫我們創(chuàng)建地上那張表,如下:

中介模型小示例

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')

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

圖中可以看出,Django創(chuàng)建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')

中介模型與Django自建表的區(qū)別

1、中介模型的第三張表是自己創(chuàng)建的,所以可以自己任意添加額外的字段,而Django自創(chuàng)建的第三張表的字段是固定的

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

潼南县| 突泉县| 江安县| 沈阳市| 信阳市| 潜江市| 中超| 呼玛县| 吴江市| 马公市| 威远县| 凌源市| 确山县| 洞头县| 洞头县| 凌源市| 房山区| 盘锦市| 乃东县| 西乡县| 定西市| 吐鲁番市| 伊宁市| 新郑市| 咸丰县| 沿河| 长宁县| 高雄市| 乌苏市| 西盟| 丹阳市| 尼木县| 府谷县| 环江| 社旗县| 黄骅市| 西平县| 犍为县| 祥云县| 龙胜| 塘沽区|