def Render(self, template_path, values, write_to_response=True):
    path = os.path.join(
        os.path.dirname(__file__), 'templates', template_path)

    if not settings.DEV_APPSERVER:
      values['static_path'] = 'myapp/%s' % os.getenv('CURRENT_VERSION_ID')

    values['is_admin'] = self.IsAdminUser()

    if not hasattr(self, '_menu'):
      self._menu = GetMenu()

    values['menu'] = self._menu

    if not settings.APPROVAL_REQUIRED:
      if 'proposals' in values['menu']['munki_packages']['subitems']:
        del values['menu']['munki_packages']['subitems']['proposals']

    if 'msg' not in values:
      values['msg'] = self.request.GET.get('msg')

    if 'report_type' not in values:
      values['report_type'] = 'undefined_report'

    if self.XSRF_PROTECT:
      values['xsrf_token'] = xsrf.XsrfTokenGenerate(values['report_type'])

    if hasattr(self, '_page'):
      values['limit'] = self._page.get('limit')
      values['next_page'] = self._page.get('next_page')
      values['results_count'] = self._page.get('results_count')
      values['limits'] = QUERY_LIMITS

      values['request_query_params'] = self.request.GET
      values['request_path'] = self.request.path

      if self._page.get('next_page'):
        # Generate next page link, replacing "page" query param with next_page.
        query_params = self.request.GET.copy()
        query_params['page'] = self._page.get('next_page')
        values['next_page_link'] = '%s?%s' % (
            self.request.path, urllib.urlencode(query_params, doseq=True))

    html = template.render(path, values)
    if write_to_response:
      self.response.out.write(html)
    return html
Sends an HTTP POST request to the specified URL, and returns the JSON
dataset/ETHPy150Open google/simian/src/simian/mac/admin/__init__.py/AdminHandler.Render--crossover with--dataset/ETHPy150Open Doist/todoist-python/todoist/api.py/TodoistAPI._post