国产探花免费观看_亚洲丰满少妇自慰呻吟_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。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富川| 施秉县| 吴江市| 若尔盖县| 闽清县| 昌江| 佛学| 上饶市| 永德县| 吴忠市| 曲阜市| 资阳市| 民丰县| 庐江县| 内丘县| 玛沁县| 张掖市| 蓬莱市| 呼和浩特市| 蓬莱市| 平远县| 图片| 龙海市| 镇康县| 晴隆县| 吕梁市| 江陵县| 五指山市| 塘沽区| 方正县| 禄劝| 晋城| 通州区| 同德县| 武陟县| 河北区| 绍兴县| 龙山县| 平罗县| 射洪县| 措勤县|