Skip to main content
 首页 » 编程设计

python之如何统计反向关系的所有用户

2025年05月04日17mengfanrong

我想使用 Django ORM 在 Company 上创建一个返回用户数的方法。

这是我尝试过的(参见 company_user_count 方法):

用户模型:

class AppUser(AbstractBaseUser): 
    email = models.EmailField( 
        verbose_name='email address', 
        max_length=254, 
        unique=True, 
        db_index=True, 
    )  
    company = models.ForeignKey('Company', related_name="users") 

公司模式:

class Company(models.Model): 
    name = models.CharField(max_length=60) 
 
 
    def company_user_count(self): 
        return Company.objects.filter(users__company=self.company).annotate(user_count=Count('users')) 

上面似乎返回了一个实际的对象而不是一个简单的计数(int)

请您参考如下方法:

def company_user_count(self): 
    return self.users.count()