Django - Queryset to get all related details to a Model

Viewed 1103

I have a Book model which has multiple authors, genres. Here are the models which have all the ForeignKey relations.

models.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)

views.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})

book object example:

book = {
    title: 'some title',
    authors: [
              {
                 id: 1,
                 name: 'name1'
              },
              {
                 id: 2,
                 name: 'name2'
              }
    ],
    genres: [
         {
            id: 1,
            genre_name: 'somegenre1' 
         },
         {
            id: 1,
            genre_name: 'somegenre2' 
         }
    ]
}

How can i access Book related authors, genre's in my views.py method

1 Answers
Related