两个查找字段django rest

时间:2019-06-25 06:31:28

标签: django-rest-framework

我必须创建一个API来在租户中检索超级管理员:

我的网址是:

 path('tenant/<slug:pk>/superadmin/<slug:superadmin>/', SuperAdminRUDView.as_view(), name='tenant-superadmin'),

我成功列出了所有超级管理员。但是,要创建一个RUD视图,它将有两个合并字段:

我的观点:

class SuperAdminRUDView(GetSuperAdminsMixin, generics.RetrieveUpdateDestroyAPIView):
    serializer_class = SuperAdminSerializer
    permission_classes = [CreateSuperAdminPermission]

GetSuperAdminsMixin只是一个用于返回查询集的混合方法。如何管理此多重查找字段。superadmin的检索应基于slug:superadmin给出的id

class GetSuperAdmins(object):
    def get_queryset(self):
        users = ElsUser.objects.filter(tenant=self.kwargs['pk'])
        super_admin_users = []
        user_roles = []
        role_names = []
        for user in users:
            role_names = []
            user_roles = RoleHelper(user.id).get_user_default_roles()
            roles = PMRole.objects.filter(id__in=user_roles)
            for role in roles:
                role_names.append(role.short_name)
            if "tenant_system_admin" in role_names:
                super_admin_users.append(user)
        return super_admin_users

0 个答案:

没有答案