从“我的群组”中获取“联系人”数量的正确方法是什么?
我在考虑在'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)
答案 0 :(得分:1)
group_object.contact_set.count()
应该这样做。 Django通过将_set
添加到外键的模型名称的末尾来创建关系。
查看相关对象的docs以获取更多信息。