我有一个有多个作者、流派的书籍模型。以下是具有所有外键关系的模型。
模型.py
class Book(models.Model):
title = models.CharField(max_length=200)
class Author(models.Model):
name = models.CharField(max_length=100)
class Genre(models.Model):
genre_name = models.CharField(max_length=50)
class Book_author(models.Model):
book = models.ForeignKey(Book)
author = models.ForeignKey(Author)
class Book_genre(models.Model):
book = models.ForeignKey(Book)
genre = models.ForeignKey(Genre)
Run Code Online (Sandbox Code Playgroud)
视图.py
def book_detail(request, book_id):
book = Book.objects.get(pk=book_id)
# how can i get iterated multiple authors, books attached to book dictionary
return render(request, 'detail.html', {'book': book})
Run Code Online (Sandbox Code Playgroud)
书籍对象示例:
book = {
title: 'some title',
authors: [
{
id: 1,
name: 'name1'
},
{
id: 2,
name: 'name2'
}
],
genres: [
{
id: 1,
genre_name: 'somegenre1'
},
{
id: 1,
genre_name: 'somegenre2'
}
]
}
Run Code Online (Sandbox Code Playgroud)
我如何在我的views.py方法中访问与书籍相关的作者、流派
您不需要更改视图中的任何内容,对于反向查找,您可以调用模型的反向关系访问器并利用所有相关对象。
在你的模板中,
title : {{ book.title }}
authors : {% for item in book.book_author_set.all %} {{ item.author.name }} {% endfor %}
genres : {% for item in book.book_genre_set.all %} {{ item.genre.genre_name }} {% endfor %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1287 次 |
| 最近记录: |