gpt4 book ai didi

python - ManyToManyField 关系不检索任何数据

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

我有一个这样的结构: 1. 作者 2. 预订 3.作者类型 4. 作者图书类型

一本书可以有多个作者,并且它可以在书中具有以下功能,例如:“作者”,“共同作者”,“部分”,“帮助者”等:

class Book(models.Model):
title=models.CharField(max_length=100)


class Author(models.Model):
name=models.CharField(max_length=100)
books=models.ManyToManyField(Book, through='AuthorBookType')


class AuthorType(models.Model):
description=models.CharField(max_length=100)


class AuthorBookType(models.Model):
author=models.ForeignKey(Author, on_delete=models.CASCADE)
book=models.ForeignKey(Book, on_delete=models.CASCADE)
author_type=models.ForeignKey(AuthorType, on_delete=models.CASCADE)

我的数据库应如下所示:

AUTHOR:
__________________________
| ID | NAME |
|========================|
| 1 | Jhon Doe. |
| 2 | Charles Albert |
| 3 | Matt Greg |
| 4 | Anne Engel |
--------------------------

BOOK:
__________________________
| ID | NAME |
|========================|
| 1 | Paradise City |
| 2 | Profaned Apple |
--------------------------

AUTHOR_TYPE:
__________________________
| ID | DESCRIPTION |
|========================|
| 1 | Author |
| 2 | Co-Author |
--------------------------

AUTHOR_BOOK_TYPE:
_____________________________________________
| ID | AUTHOR_ID | BOOK_ID | AUTHOR_TYPE_ID |
|===========================================|
| 1 | 1 | 1 | 1 |
| 2 | 2 | 1 | 2 |
| 3 | 3 | 1 | 2 |
| 4 | 3 | 2 | 1 |
| 5 | 4 | 2 | 2 |
---------------------------------------------

在我的views.py上我做了:

class AuthorsListView(ListView)
model = Author
context_object_name = 'authors'
template_name = 'core/authors_list.html'

然后在我的模板上:

{% for author in authors %}
{{ author.name }}<br>
{{ author.books }}
{% endfor %}

返回是:

<author name>
<core.Books.None>

我有什么错吗?我搜索了这样的示例,但我发现了一些 Django 1.x 的旧示例,没有 2.x 的示例。

在文档中,我没有找到这样的示例(仅没有连接表)。 https://docs.djangoproject.com/en/2.1/topics/db/examples/many_to_many/

最佳答案

这里 Django 版本之间的语法没有区别;您找到的任何文档仍然有效。

您需要迭代多对多关系:

{% for author in authors %}
{{ author.name }}<br>
{% for book in author.books.all %}{{ book.title }}{% endfor %}
{% endfor %}

关于python - ManyToManyField 关系不检索任何数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53688427/

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