我有2个外键模型。
class NewModel(models.Model):
user_id = models.ForeignKey(User, on_delete=models.CASCADE)
user_g_id = models.ForeignKey(User, on_delete=models.CASCADE)
这是我的查询集。它计算了男性用户的数量,但我希望两个字段中的男性用户数量不同。
male_count = newmodelqueryset.filter(
Q(user_id__gender_id=male['id']) | Q(user_g_id__gender_id=male['id'])).count()
过滤器可能会导致一个LEFT OUTER JOIN
,这样相同的对象,但有不同的相关对象,被返回多次。
你可以计算不同主键的个数:
male_count = newmodelqueryset.filter(
Q(user_id__gender_id=male['id']) | Q(user_g_id__gender_id=male['id'])
).values('pk').distinct().count()