docs: def rpc_call(self, request, method=None, **payload):
          """ Call REST API with RPC force.
  
          return object: a result
  
          """
          if not method or self.separator not in method:
              raise AssertionError("Wrong method name: {0}".format(method))
  
          resource_name, method = method.split(self.separator, 1)
          if resource_name not in self.api.resources:
              raise AssertionError("Unknown method " + method)
  
          data = QueryDict('', mutable=True)
          data.update(payload.get('data', dict()))
          data['callback'] = payload.get('callback') or request.GET.get(
              'callback') or request.GET.get('jsonp') or 'callback'
          for h, v in payload.get('headers', dict()).iteritems():
              request.META["HTTP_%s" % h.upper().replace('-', '_')] = v
  
          request.POST = request.PUT = request.GET = data
          delattr(request, '_request')
          request.method = method.upper()
          request.META['CONTENT_TYPE'] = 'application/x-www-form-urlencoded'
          params = payload.pop('params', dict())
          response = self.api.call(resource_name, request, **params)
  
          if not isinstance(response, SerializedHttpResponse):
              return response
  
          if response['Content-type'] in self._meta.emitters_dict:
              return HttpResponse(response.content, status=response.status_code)
  
          if response.status_code == 200:
              return response.response
  
          raise AssertionError(response.response)