0
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
isbn = models.CharField(max_length=9)
name = models.CharField(max_length=300)
authors = models.ManyToManyField(Author, through='BookAuthor')
class BookAuthor(models.Model):
book = models.ForeignKey('Book', on_delete=models.CASCADE)
author = models.ForeignKey('Author', on_delete=models.CASCADE)
position = models.IntegerField()
在上面的模型创建直方图,我录制的位置,一个作家 对于给定的书的名字(见BookAuthor
表position
场),即想象“保罗·科埃略”被“第一作者”在书X上,“第二作者”在书Y上,“第三作者”在书Z上。从多对多表
对于每位作者,我想创建一个柱状图,其中每个柱状图bin计数很多时候,作者的姓名出现在所有书籍的“第i”位置。例如:
AuthorName, No1stAuth, No2ndAuth, No3rdAuth
--------------------------------------------
Paulo Coelho, 3, 1, 1
Mario Vargas Llosa, 4, 2, 0
这意味着保罗科埃略出现3倍作为第一作者,1个为第二作者,和1x为第三作者。 Mario Vargas Llosa以第一作者的身份出现4次,作为第二作者的2次以及作为第三作者的0x。你可以假设,每本书最多有5位作者。