模型
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 2019-06-11 11:19:08 +08:00
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')
|
3
kingofvir OP @kingofvir 在 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 2019-06-11 11:42:27 +08:00
指定 related_name?
或者用 Shop 查 Shop.objects.select_related('author').values('author__name').annotate(c=Sum('sales_count')) |