0

「グループ」内から「連絡先」数を取得する正しい方法は何ですか?

'group' と filter() 内に新しいメソッドを作成することだけを考えていましたが、これはデータベースに再度ヒットすることを意味し、悪いように思えますよね?

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)
4

1 に答える 1

1

group_object.contact_set.count()それをする必要があります。_setDjangoは、外部キーのモデル名の末尾に追加することでリレーションを作成します。

詳細については、関連するオブジェクトのドキュメントをご覧ください。

于 2013-03-17T09:22:21.237 に答える