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

是的,如果您有一个Person带有 name 的实例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

You need to create a method in Person model

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