正确的计算FK的方法

时间:2013-03-17 09:18:53

标签: django

从“我的群组”中获取“联系人”数量的正确方法是什么?

我在考虑在'group'和filter()中创建一个新方法,但这意味着再次点击db这看起来很糟糕,对吗?

class GroupManager(models.Manager):

    def for_user(self, user):
        return self.get_query_set().filter(user=user,)


class Group(models.Model):
    name = models.CharField(max_length=60)
    modified = models.DateTimeField(null=True, auto_now=True,)

    #FK
    user = models.ForeignKey(User, related_name="user")

    objects = GroupManager()


    def get_absolute_url(self):
        return reverse('contacts.views.group', args=[str(self.id)])


class Contact(models.Model):

    first_name = models.CharField(max_length=60)
    last_name = models.CharField(max_length=60)

    #FK
    group = models.ForeignKey(Group)

1 个答案:

答案 0 :(得分:1)

group_object.contact_set.count()应该这样做。 Django通过将_set添加到外键的模型名称的末尾来创建关系。

查看相关对象的docs以获取更多信息。