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()'。我不確定你從'人'模特的身邊*是什麼意思?這*是*如何讓'書'給予'人'。 –