
模型
class Author(models.Model): """ 作者""" name = models.CharField('名字', max_length=64) class Shop(models.Model): """ 书店对某个作者的销售情况""" author = models.ForeignKey(Author,on_delete=) sales_count = models.CharField('销售情况', max_length=512, default='') 如和查询 Author,并且能统计该作者在所有书点点销售总数?
1 tristankuo Jun 11, 2019 sales_count 不应该是 int 吗? from django.db.models import Sum Author.objects.prefetch_related('shops').values('name').annotate(sum_sales_count=Sum('shops__sales_count')) |
2 kingofvir OP 在 Author 每指明 MTM 字段 能使用 prefetch related('shops') |
4 kingofvir OP 我用了这个 ``` Shop.objects.values('author__pk').annotate( all_sales_count=Sum('sales_count', distinct=True), name=F('author__name') ) ``` |
5 tristankuo Jun 11, 2019 指定 related_name? 或者用 Shop 查 Shop.objects.select_related('author').values('author__name').annotate(c=Sum('sales_count')) |