docs: def create(self, request, *args, **kwargs):
          """Create a resource."""
          collections = request.data.get('collections', [])
  
          # check that user has permissions on all collections that Data
          # object will be added to
          for collection_id in collections:
              try:
                  collection = Collection.objects.get(pk=collection_id)
              except Collection.DoesNotExist:
                  return Response({'collections': ['Invalid pk "{}" - object does not exist.'.format(collection_id)]},
                                  status=status.HTTP_400_BAD_REQUEST)
  
              if not request.user.has_perm('add_collection', obj=collection):
                  if request.user.has_perm('view_collection', obj=collection):
                      raise exceptions.PermissionDenied(
                          "You don't have `ADD` permission on collection (id: {}).".format(collection_id)
                      )
                  else:
                      raise exceptions.NotFound(
                          "Collection not found (id: {}).".format(collection_id)
                      )
  
          self.define_contributor(request)
  
          if kwargs.pop('get_or_create', False):
              response = self.perform_get_or_create(request, *args, **kwargs)
              if response:
                  return response
  
          return super().create(request, *args, **kwargs)