使用Django ORM我想在Company上创建一个返回User count的方法。
这就是我的尝试(参见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'))
上面似乎返回一个实际的对象,而不是一个简单的count(int)
答案 0 :(得分:4)
def company_user_count(self):
return self.users.count()
答案 1 :(得分:1)
您无需编写自定义方法来计算属于公司的用户。
只需获取公司的所有用户并对其执行count()
。
user_count = Company.objects.get(name='fooCompany').users.count()
答案 2 :(得分:1)
试试这个:
def company_user_count(self):
return self.users.count()