前提・実現したいこと
カウントしたクエリセットをモデルの特定カラムにセットしたいと思っています。
ご教授のほどよろしくお願いします。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
■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)
impressionCount = models.IntegerField('感想数', blank=True, default=0)
total_readCount = models.IntegerField('総読書回数', blank=True, default=0)
def __str__(self): return self.name
"""感想"""
class Impression(models.Model):
book = models.ForeignKey(Book, verbose_name='書籍', related_name='impressions', on_delete=models.CASCADE)
comment = models.TextField('コメント', blank=True)
readCount = models.IntegerField('読書回数', blank=True, default=0)
def __str__(self): return self.comment
試したこと
上記モデルから以下のクエリを発行しました。
a = Book.objects.filter(impressions__isnull=False).values('id').annotate(impre_count=Count('id'))
このクエリセットをBookモデルのidをもとにimpressionCount列にimpre_countをセットしたいと思っています。
{'id': 1, 'impre_count': 2}
{'id': 2, 'impre_count': 1}
{'id': 6, 'impre_count': 3}
{'id': 7, 'impre_count': 1}
views.pyにどのような記述をすればいいのか分からず止まっている状態です。
補足情報(FW/ツールのバージョンなど)
python3.6,Django2.0.2
ここにより詳細な情報を記載してください
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。