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

首頁 > 編程 > Python > 正文

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

2019-11-25 17:09:24
字體:
來源:轉載
供稿:網友

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

from django.db import modelsclass Publisher(models.Model):  name = models.CharField(max_length=30)  address = models.CharField(max_length=50)  city = models.CharField(max_length=60)  state_province = models.CharField(max_length=30)  country = models.CharField(max_length=50)  website = models.URLField()  def __unicode__(self):    return self.nameclass Author(models.Model):  first_name = models.CharField(max_length=30)  last_name = models.CharField(max_length=40)  email = models.EmailField()  def __unicode__(self):    return u'%s %s' % (self.first_name, self.last_name)class Book(models.Model):  title = models.CharField(max_length=100)  authors = models.ManyToManyField(Author)  publisher = models.ForeignKey(Publisher)  publication_date = models.DateField()  def __unicode__(self):    return self.title

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

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

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

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

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平利县| 泽普县| 景谷| 浮山县| 海门市| 汤原县| 平邑县| 巴彦淖尔市| 中江县| 永城市| 平利县| 红原县| 石渠县| 东乡族自治县| 常山县| 靖西县| 思南县| 德昌县| 彭水| 彝良县| 镇平县| 滨州市| 砚山县| 桂林市| 临洮县| 航空| 门源| 缙云县| 娱乐| 郧西县| 乳源| 阿拉善盟| 周口市| 旬邑县| 城步| 韶关市| 闸北区| 沐川县| 凤城市| 潮州市| 敖汉旗|