国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django的數據模型訪問多對多鍵值的方法

2020-01-04 18:01:10
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了Django的數據模型訪問多對多鍵值的方法,Django是Python豐富多彩的web框架中最具人氣的一個,需要的朋友可以參考下

這里先來借用一個書本(book)的數據模型作為例子:

 

 
  1. from django.db import models 
  2.  
  3. class Publisher(models.Model): 
  4. name = models.CharField(max_length=30) 
  5. address = models.CharField(max_length=50) 
  6. city = models.CharField(max_length=60) 
  7. state_province = models.CharField(max_length=30) 
  8. country = models.CharField(max_length=50) 
  9. website = models.URLField() 
  10.  
  11. def __unicode__(self): 
  12. return self.name 
  13.  
  14. class Author(models.Model): 
  15. first_name = models.CharField(max_length=30) 
  16. last_name = models.CharField(max_length=40) 
  17. email = models.EmailField() 
  18.  
  19. def __unicode__(self): 
  20. return u'%s %s' % (self.first_name, self.last_name) 
  21.  
  22. class Book(models.Model): 
  23. title = models.CharField(max_length=100) 
  24. authors = models.ManyToManyField(Author) 
  25. publisher = models.ForeignKey(Publisher) 
  26. publication_date = models.DateField() 
  27.  
  28. def __unicode__(self): 
  29. return self.title 

訪問多對多值(Many-to-Many Values)

多對多和外鍵工作方式相同,只不過我們處理的是QuerySet而不是模型實例。 例如,這里是如何查看書籍的作者:

 

 
  1. >>> b = Book.objects.get(id=50) 
  2. >>> b.authors.all() 
  3. [<Author: Adrian Holovaty>, <Author: Jacob Kaplan-Moss>] 
  4. >>> b.authors.filter(first_name='Adrian'
  5. [<Author: Adrian Holovaty>] 
  6. >>> b.authors.filter(first_name='Adam'
  7. [] 

反向查詢也可以。 要查看一個作者的所有書籍,使用author.book_set ,就如這樣:

 

 
  1. >>> a = Author.objects.get(first_name='Adrian', last_name='Holovaty'
  2. >>> a.book_set.all() 
  3. [<Book: The Django Book>, <Book: Adrian's Other Book>] 

這里,就像使用 ForeignKey字段一樣,屬性名book_set是在數據模型(model)名后追加_set。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中宁县| 甘孜| 郁南县| 凉山| 新蔡县| 西峡县| 安溪县| 阿坝县| 合作市| 鞍山市| 南岸区| 庆云县| 泗洪县| 三门县| 四子王旗| 浦城县| 淄博市| 盐城市| 沁水县| 罗江县| 合肥市| 舞钢市| 花莲县| 庆云县| SHOW| 醴陵市| 阜阳市| 祥云县| 洛川县| 双辽市| 临海市| 长岛县| 芮城县| 曲阳县| 双柏县| 启东市| 佛学| 深泽县| 新野县| 齐河县| 长顺县|