Pinax 团队 - 给定一个用户找到该用户所属的所有团队

Pinax teams - given a user find all the teams for which the user is a member

我正在使用 pinax-teams 来模拟团队和成员资格。尝试查看查找以下内容的最佳方法:

给定一个用户,获取他所属的所有团队。我目前有以下内容,但效率太低。任何帮助表示赞赏。这里是 link 到 pinax-teams https://github.com/pinax/pinax-teams/blob/master/pinax/teams/models.py

    team_set = []
    user_name = self.request.QUERY_PARAMS.get('user_name', None)
    user = User()
    if user_name is not None:
        user = User.objects.get(username=user_name)

    for team in Team.objects.all():
        if team.for_user(user):
            team_set.append(team)
    return team_set

不需要如此复杂或低效的东西。您可以在单个查询中关注这些关系:

teams = Team.objects.filter(memberships__user=user)