code: def spell_check(request):
      
      data = json.loads(request.body.decode('utf-8'))
      output = {'id': data['id']}
      error = None
      status = 200
      try:
          if data['params']['lang'] not in list_languages():
              error = 'Missing {0} dictionary!'.format(data['params']['lang'])
              raise LookupError(error)
          spell_checker = checker.SpellChecker(data['params']['lang'])
          spell_checker.set_text(strip_tags(data['params']['text']))
          output['result'] = {spell_checker.word: spell_checker.suggest()
                              for err in spell_checker}
      except NameError:
          error = 'The pyenchant package is not installed!'
          logger.exception(error)
      except LookupError:
          logger.exception(error)
      except Exception:
          error = 'Unknown error!'
          logger.exception(error)
      if error is not None:
          output['error'] = error
          status = 500
      return JsonResponse(output, status=status)
docs: Implements the TinyMCE 4 spellchecker protocol
  
      :param request: Django http request with JSON-RPC payload from TinyMCE 4
          containing a language code and a text to check for errors.
      :type request: django.http.request.HttpRequest
      :return: Django http response containing JSON-RPC payload
          with spellcheck results for TinyMCE 4
      :rtype: django.http.JsonResponse