Djangoでannotateを使用し平均値を求めようとしています。
model
1Class User(models.Model): 2 Class Meta: 3 db_table = 'users' 4 verbose_name='ユーザー' 5 name = models.CharField(verbose_name='氏名',max_length=10) 6 7Class Books(models.Model): 8 Class Meta: 9 db_table = 'books' 10 verbose_name='書籍' 11 title = models.CharField(verbose_name='タイトル',max_length=10) 12 user = models.Foreignkey(User,verbose_name='購入者',on_delete=models.CASCADE) 13 price = models.IntegerField(verbose_name='価格') 14 code = models.CharField(verbose_name='コード',max_length=4) 15
上記のようなユーザーのモデルと、購入した書籍のモデルがあるのですが、
ユーザーの一覧で、codeがAAAAの書籍のみの平均価格を表示させたいです。
codeをAAAAだけに限定しなければ、下記のコードで求められるのですが、
annotateの集計対象を条件指定するにはどのようにすれば良いか教えていただけないでしょうか?
view
1User.objects.annotate(avg=Avg('books__price'))
version
1Python==3.7.2 2Django == 2.1.0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。