diff --git a/apps/users/api/relation.py b/apps/users/api/relation.py index fbab92ee9..218d52142 100644 --- a/apps/users/api/relation.py +++ b/apps/users/api/relation.py @@ -1,9 +1,9 @@ # -*- coding: utf-8 -*- # -from rest_framework_bulk import BulkModelViewSet from django.db.models import F +from common.drf.api import JMSBulkRelationModelViewSet from common.permissions import IsOrgAdmin from .. import serializers from ..models import User @@ -11,17 +11,17 @@ from ..models import User __all__ = ['UserUserGroupRelationViewSet'] -class UserUserGroupRelationViewSet(BulkModelViewSet): +class UserUserGroupRelationViewSet(JMSBulkRelationModelViewSet): filter_fields = ('user', 'usergroup') search_fields = filter_fields serializer_class = serializers.UserUserGroupRelationSerializer permission_classes = (IsOrgAdmin,) + m2m_field = User.groups.field def get_queryset(self): - queryset = User.groups.through.objects.all()\ - .annotate(user_display=F('user__name'))\ - .annotate(usergroup_display=F('usergroup__name')) - return queryset + return super().get_queryset().annotate( + user_display=F('user__name'), usergroup_display=F('usergroup__name') + ) def allow_bulk_destroy(self, qs, filtered): if filtered.count() != 1: