Счастье привалило в виде переопределения метода
get_queryset, так вьюсет отрабатывает как надо:
class PhotosViewSet(viewsets.ModelViewSet):
serializer_class = serializers.CompanyPhotoSerializer
permission_classes = [permissions.IsOwnerOrReadOnly]
def get_queryset(self):
company = self.kwargs.get('company_id')
photos = models.CompanyPhoto.objects.filter(company_id=company)
return photos
Ещё проще жить когда так:
class ParentIDMixin:
parent_field = ''
model = None
def get_queryset(self, *args, **kwargs):
queryset = self.model.objects.filter(**self._get_filter_key())
return queryset
def _get_filter_key(self):
parent_id = self.kwargs.get(self.parent_field)
return {self.parent_field: parent_id}
class PhotosViewSet(ParentIDMixin, viewsets.ModelViewSet):
serializer_class = serializers.CompanyPhotoSerializer
permission_classes = [permissions.IsOwnerOrReadOnly]
model = models.CompanyPhoto
parent_field = 'company_id'