Reputation: 30845
I have two models:
class PlayerPermissionGroup(models.Model):
player = models.ForeignKey(Player)
name = models.CharField(max_length=200)
class PlayerPermissionGroupMember(models.Model):
permission_group = models.ForeignKey(PlayerPermissionGroup)
user = models.ForeignKey(User)
Currently, to get all the member in a Permissions Group I do:
getMembers(group):
group_member_ids = (PlayerPermissionGroupMember.objects.filter(permission_group=group)
.values_list('user__id'))
return User.objects.filter(pk__in=group_member_ids)
Is there a better/cleaner way to do that?
Upvotes: 0
Views: 65
Reputation: 9428
You MAY add a related_name
to you FK to User
:
class PlayerPermissionGroupMember(models.Model):
permission_group = models.ForeignKey(PlayerPermissionGroup)
user = models.ForeignKey(User, related_name='player_permision_groups')
Then you can do:
getMembers(group):
return User.objects.filter(player_permision_groups__permission_group=group)
You may omit the related_name
but the lookup changes slightly by using the default related_name
that django assigns instead.
Upvotes: 1