0

我有以下型号:

class ProjectUser(models.Model):

    categories = models.ManyToManyField('UserCategory', blank=True, null=True)

    user_id = models.PositiveIntegerField(db_index=True)
    name = models.CharField(max_length=80)
    actual_rank = models.FloatField(default=0) 

class UserCategory(models.Model):
    name = models.CharField(max_length=100)

我想做的是获取类别名称和它们在用户中出现的次数除以另一个对象的长度。

我正在创建一个类别字典 {'category': ocurrences },然后对其进行迭代并将出现次数除以一个数字以获得类别排名。

也许这是一个很好的方法,但我想知道是否可以直接使用一些查询集方法来完成。我在很多地方都在做类似的事情,找到一种更好、更简洁的方法来解决它会很棒。

4

1 回答 1

0

这应该让所有具有类别名称的用户在他们的类别中,计算用户数量,然后将该数字除以您在其他地方获得的长度。

ProjectUser.objects.filter(categories__name__contains=category.name).count() / objectLength

category成为您正在尝试分析的当前人。

于 2012-06-14T22:51:02.797 回答