1

次のモデルがあります: UserUserProfile、およびSalesCompany

関係: すべてUserに がありUserProfile、すべてUserProfileに がありSalesCompanyます。

複数の ですべてUserのを取得する必要があります。SalesCompanyUserProfile

次のソリューションよりも効率的な方法はありますか? 注釈トラバースForeignKeysのいくつかの組み合わせが解決策のようですが、私は困惑しています。

# get all users
all_users = User.objects.all().order_by('username')
users = []
# for each user
for user in all_users:
    try:
        # get profile
        profile = UserProfile.objects.get(user=user)
        # get count of profiles (i.e. users) at current user's company
        count_users = len(UserProfile.objects.filter(company=profile.company))
        # if more than one user at company (so not just current user)
        if count_users > 1:
            # add to users list
            users.append(user)
    except Exception, e:
        pass
4

1 に答える 1