From 7ca861df7f757eb2efdd66f6bc35eae5d0cef6b9 Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Oct 27 2016 14:20:02 +0000 Subject: Cherrypy does not like getting unicode objects and fails terribly It fails by logging a 200 in Apache logs, nothing else, and then sending a 500 Internal Server Error to the client. Signed-off-by: Patrick Uiterwijk --- diff --git a/ipsilon/util/page.py b/ipsilon/util/page.py index e1cecb9..e3580fa 100644 --- a/ipsilon/util/page.py +++ b/ipsilon/util/page.py @@ -66,7 +66,7 @@ class Page(Endpoint): if len(args) > 0: op = getattr(self, args[0], None) if callable(op) and getattr(op, 'public_function', None): - return op(*args[1:], **kwargs) + return op(*args[1:], **kwargs).encode('utf-8') else: if self._is_form_page: self.debug("method: %s" % cherrypy.request.method) @@ -84,13 +84,13 @@ class Page(Endpoint): self.debug("Wrong referer %s in request to %s" % (referer, url)) raise cherrypy.HTTPError(403) - return op(*args, **kwargs) + return op(*args, **kwargs).encode('utf-8') else: op = getattr(self, 'root', None) if callable(op): - return op(*args, **kwargs) + return op(*args, **kwargs).encode('utf-8') - return self.default(*args, **kwargs) + return self.default(*args, **kwargs).encode('utf-8') def _template_model(self): model = dict()