gpt4 book ai didi

python - Django 从三个相关表获取信息。连接表

转载 作者:行者123 更新时间:2023-12-01 04:33:38 26 4
gpt4 key购买 nike

我有三个相关的表。

class Book(models.Model):
year_published = models.IntField()
author = models.ForeignKey(Author)

class Author(models.Model):
author_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=50)
agent = models.ForeignKey(LitAgent)

class LitAgent(models.Model):
agent_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=50)

好的,我可以像这样得到一个 LitAgent

getla = LitAgent.objects.get(agent_id=1)

我可以像这样找到作者

getauthors = Author.objects.filter(agent=getla.agent_id)

但是我怎样才能获得某个作者拥有的所有书籍,并确保这些书籍与正确的作者对齐呢?我还需要访问 LitAgentAuthor 中的数据

最佳答案

据我了解,您想通过使用agent_id 来获取书籍。如果这是您想要的,那么您可以使用来完成此操作

books = Book.objects.filter(author__agent__agent_id=1)

这将返回作者与 id = 1 的代理相关的所有书籍的列表。如果您想访问每本书的作者,可以使用

for book in books:
print book.author.name
# in order to print the author agent
print book.author.agent.name
<小时/>

在另一边,您可以通过 LitAgent 模型访问书籍。

可以说

agent = LitAgent.objects.get(agent_id=1)

然后要获取作者

authors = agent.author_set.all()

现在您可以迭代

for author in authors:
for book in author.book_set.all()
print book

关于python - Django 从三个相关表获取信息。连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32029365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com