次のモデルがあります: User
、UserProfile
、およびSalesCompany
関係: すべてUser
に がありUserProfile
、すべてUserProfile
に がありSalesCompany
ます。
複数の ですべてUser
のを取得する必要があります。SalesCompany
UserProfile
次のソリューションよりも効率的な方法はありますか? 注釈とトラバース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