首页 > 解决方案 > 如何将 2 个查询集与 django 中的不同列结合起来

问题描述

所以我有2张桌子:

class User(AbstractUser):
    ACCOUNT_TYPE = (
        ('reseller', 'Reseller'),
        ('distributor', 'Distributor'),
        ('stockist', 'Stockist'),
    )
    account_type    = models.CharField(max_length=255, choices=ACCOUNT_TYPE, blank=True, null=True)
    province = models.CharField(max_length=255, blank=True, null=True)

class Order(models.Model):
    province = models.CharField(max_length=255, blank=True, null=True)

首先,我得到 account_type='stockist' 的用户:

q1 = User.objects.values_list('username','province').filter(account_type='stockist')

其次,我得到每个省的总订单:

q2 = Order.objects.values('province').filter(province__in=Subquery(q1.values('province'))).annotate(total=Count('province')).order_by('total')

得到之后我应该用什么来组合我的两个查询?

我想要的输出是:


|用户|省|总计|

标签: subquerydjango-orm

解决方案


推荐阅读