Django REST Framework: Using same queryset from two different URLs -



Django REST Framework: Using same queryset from two different URLs -

i have 2 modelviewsets groups , memberships:

class groupviewset(viewsets.modelviewset): queryset = group.objects.all() serializer_class = groupserializer permission_classes = (permissions.isauthenticatedorreadonly, isgroupownerorsuperuser,) ... class membershipviewset(viewsets.modelviewset): queryset = membership.objects.all() serializer_class = membershipserializer permission_classes = (permissions.isauthenticatedorreadonly, ismemberorsuperuser,) def get_queryset(self): ... # stuff including filter query grouping group_id = self.request.query_params.get('group_id', none) ... homecoming queryset

in membershipviewset, get_queryset allows query filter group_id, members associated particular group.

in groupviewset, want allow filtering groups @ url /groups/{pk}/memberships:

@link() def memberships(self, request, pk=none): ...

however don't want break dry replicating get_queryset code membershipsviewset. below code, though doesn't work:

@link() def memberships(self, request, pk=none): grouping = group.objects.get(pk=pk) # next doesn't work because query_params immutable self.request.query_params.update({'group_id':pk}) mems = membershipviewset.get_queryset(self) mems = membershipserializer(mems, many=true, context={'request': request}) homecoming response(mems.data)

so question is: how redirect or @ to the lowest degree re-use code query should homecoming identical results 2 different drf urls?

i don't know if solves problem, replace line

# next doesn't work because query_params immutable self.request.query_params.update({'group_id':pk})

with

self.kwargs['group_id'] = pk

and in get_queryset can take grouping id same way.

group_id = self.kwargs.get('group_id', none)

this how it, , works me. hope helps.

django django-rest-framework

Comments

Popular posts from this blog

model view controller - MVC Rails Planning -

ruby on rails - Devise Logout Error in RoR -

html - Submenu setup with jquery and effect 'fold' -