在Django模型中计数保存查询

时间:2015-10-22 09:54:03

标签: django

我正在尝试预先形成一个计数查询并在保存时将其标记到我的模型中。

无论与父母有多少孩子,计数只返回1。

例如:

class Parent(models.Model):
    ......

    def save(self, *args, **kwargs):
        children = Children.objects.filter(parent=self.id).count()
        self.no_of_children = children

        super(Parent, self).save(*args, **kwargs)

class Children(models.Model):
    parent = models.ForeignKey(Parent)

1 个答案:

答案 0 :(得分:1)

问题在于过滤您的查询集。 请检查以下代码。 (此代码假定您已经有一个父对象,以防您不使用此方法。)

class Parent(models.Model):
......

    def save(self, *args, **kwargs):
        children = Children.objects.filter(parent__id=self.id).count()
        self.no_of_children = children

        super(Parent, self).save(*args, **kwargs)

class Children(models.Model):
    parent = models.ForeignKey(Parent)