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

簡單了解django orm中介模型

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

什么是中介模型

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

中介模型其實(shí)指的就是我們不通過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)

這時(shí)候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')

這時(shí)候運(yùn)行manage命令后就會生成一張第三張表,如下:

圖中可以看出,Django創(chuàng)建ForeignKey的時(shí)候會在字段后自動添加'_id',所以,我們在寫第三張表字段的時(shí)候就不用加_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)文章

最新評論

中江县| 和硕县| 巍山| 大英县| 大城县| 从化市| 庐江县| 湖南省| 涡阳县| 灵丘县| 鄂伦春自治旗| 鹿泉市| 无极县| 宾川县| 高邑县| 靖边县| 宝兴县| 成武县| 安多县| 雷山县| 依安县| 佛冈县| 盘山县| 陕西省| 东台市| 华安县| 满城县| 茶陵县| 宁河县| 马山县| 张家口市| 沙坪坝区| 濉溪县| 三原县| 姜堰市| 礼泉县| 襄垣县| 凤城市| 兖州市| 濉溪县| 新干县|