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 に答える