djangoで評価の平均が出力されない
解決したいこと
ここに解決したい内容を記載してください。
例)
djangoで書籍ごとの評価の平均を出力したいのですが表示されないです。
どのようにしたら出力されるでしょうか?
該当するソースコード
以下がviews.pyに書いたコードです。
def book_review(request, book_id):
book = Book.objects.get(book_id=book_id)
points = Impression.objects.filter(book=book)
average = points.aggregate(Avg("point"))
if average == None:
average = 0
average = round(average,3)
return render(request, "rbr/book_list.html", {"average":average})
以下がmodels.pyです。
class Book(models.Model):
name = models.CharField('書籍名', max_length=255)
publisher = models.CharField('出版社', max_length=255, blank=True)
page = models.IntegerField('ページ数', blank=True, default=0)
author = models.CharField("著者", max_length=255, blank=True)
image = models.ImageField(upload_to = "media/", verbose_name="画像", null=True, blank=True)
def __str__(self):
return self.name
class Impression(models.Model):
book = models.ForeignKey(Book, on_delete=models.CASCADE, verbose_name='書籍', related_name='impressions')
point = models.IntegerField("点数", validators=[MinValueValidator(0), MaxValueValidator(100)], default=0)
comment = models.TextField('コメント', blank=True)
def __str__(self):
return self.comment
以下が出力させたいHTMLの部分です。
<td>{{ average }}</td>
ただ表示されないだけなので、pointの値がどこかでしっかりとれていないのだと思うのですが何がいけないのかわからないです。。。
0