code: def get_model_args_kwargs(self):
          
          source = self.get_model()
          if not source:
              return [], {}
  
          argspec = inspect.getargspec(source)
          
          kk = list(zip(*[reversed(l) for l in (argspec.args, argspec.defaults or [])]))
          kk.reverse()
          kwargs = OrderedDict(kk)
          args = [x for x in argspec.args if x not in kwargs.keys()]
          if args and args[0] == 'cls':
              args = args[1:]
          return args, kwargs
docs: Inspect the model (or view in the case of no model) and return the args
          and kwargs. This functin is necessary because argspec returns in a silly format
          by default.