外键中的Django模型计数

时间:2013-03-26 06:52:52

标签: python django foreign-key-relationship

我有两个型号。

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.position.count ..有点像这样。请帮我。这只是计算内部模型。请。

3 个答案:

答案 0 :(得分:4)

是的,如果您有一个名为Person的{​​{1}}个实例,则可以使用person

答案 1 :(得分:1)

无论如何,如果你想要获取所有对象的数量,或者从@MostafaR建议的外键集中获取。您应该在查询集上使用.count()方法。如果您要查找的只是计数而不是对象,请确保不使用len(),因为len()方法将评估查询集。 More information here

获取所有对象的计数

models.Position.objects.all.count()

使用外键

获取对象计数
person = models.Person.objects.get(pk=1, **kwargs)
person.position_set.count()

答案 2 :(得分:0)

您需要在Person模型

中创建一个方法
class Person(models.Model):
 # ...
     def position(self):
         return self.position_set.count()