2

私は2つのモデルを持っています。

class Person(models.Model):
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)

class Position(models.Model):
    person = models.ForeignKey(Person)
    description = models.CharField(max_length=50)

この種の Person モデルにいくつのポジションがあるかを数えることができる方法はありますか? Person.position.count..これのようなもの。私を助けてください。これは内部モデルのみをカウントしています。お願いします。

4

3 に答える 3

5

はい、Personname のインスタンスがある場合はperson、 を使用できますperson.position_set.count()

于 2013-03-26T06:56:39.233 に答える
1

@MostafaRが提案したように、すべてのオブジェクトの数を取得しようとしている場合でも、外部キーのセットから取得しようとしている場合でも問題ありません。.count()クエリセットでメソッドを使用する必要があります。また、メソッドがクエリセットを評価するlen()ため、探しているのがオブジェクトではなくカウントだけである場合は、使用しないでください。詳細はこちらlen()

すべてのオブジェクトの数を取得するには

models.Position.objects.all.count()

外部キーを使用してオブジェクトの数を取得するには

person = models.Person.objects.get(pk=1, **kwargs)
person.position_set.count()
于 2013-03-26T07:52:16.890 に答える
0

Person モデルでメソッドを作成する必要があります

class Person(models.Model):
 # ...
     def position(self):
         return self.position_set.count()
于 2015-04-30T22:25:03.607 に答える