1
我有型号:多对多关系 - Django的
class Person(models.Model):
name = models.TextField()
class Book(models.Model):
title = models.TextField()
content = models.TextField()
class Newspaper(models.Model):
title = models.TextField()
content = models.TextField()
class Author(models.Model):
person = models.ForeignKey(Person,related_name="person_as_author")
book = models.ManyToManyField(Book,related_name="book_authors",null=True, blank=True, default=None)
newspaper = models.ManyToManyField(Newspaper,related_name="newspaper_authors",null=True, blank=True, default=None)
还有人Adam
。现在我需要所有书籍,adam是作者。
我尝试这样做:
#person is Adam
books = []
person_as_authors = person.person_as_author.all()
for each in person_as_authors:
books.append(each.book.get())
但跟它
Book matching query does not exist.
,因为该实例的book
是无。那个例子有newspaper
。
我该如何过滤并获取books
列表中的书籍?
哇让我试试.. – doniyor
谢谢,像一个魅力工作。我如何计算来自“人”模型一侧的书籍数量? – doniyor
@ doniyor:为了获得计数,您可以在末尾放置'.count()'。我不确定你从'人'模特的身边*是什么意思?这*是*如何让'书'给予'人'。 –