code: def LoginView(http_redirect=None):
      
      class LoginView(GiottoView):
          """
          ``result`` is the session that was newly created. consult the
          ``create_session`` model for reference.
          """
          @renders('text/html')
          def html(self, result):
              ty = type(http_redirect)
              if ty == list or ty == tuple:
                  assert len(http_redirect) == 3, "http_redirect must be three items"
                  return Redirection(http_redirect[0], args=http_redirect[1], kwargs=http_redirect[2])
              else:
                  # assume a string was passed in.
                  return Redirection(http_redirect)
      return LoginView
docs: After logging in, redirect the user to the ``http_redirect`` program.
      This is a meta program, a function that returns a program.
      ``http_redirect`` can be either a string, or a three item tuple with M objects:
      http_redirect=('/blog', [m.id], {}) | http_redirect=('/blog', [], {'name': M['name']})