X-Git-Url: http://git.veekun.com/zzz-pokedex.git/blobdiff_plain/2fee7534634e0f96094500811ae88b2bfae94fc6..dcf2481cea826b6a1d0ae19d8db295b22d024bc0:/pokedex/db/markdown.py diff --git a/pokedex/db/markdown.py b/pokedex/db/markdown.py index 616830a..c82ce68 100644 --- a/pokedex/db/markdown.py +++ b/pokedex/db/markdown.py @@ -31,11 +31,17 @@ class MarkdownString(object): def __unicode__(self): return self.source_text + def __str__(self): + return unicode(self.source_text).encode() + + def __html__(self): + return self.as_html + @property def as_html(self): """Returns the string as HTML4.""" - if self._as_html: + if self._as_html is not None: return self._as_html md = markdown.Markdown( @@ -106,6 +112,9 @@ class MarkdownColumn(sqlalchemy.types.TypeDecorator): impl = sqlalchemy.types.Unicode def process_bind_param(self, value, dialect): + if value is None: + return None + if not isinstance(value, basestring): # Can't assign, e.g., MarkdownString objects yet raise NotImplementedError @@ -113,4 +122,7 @@ class MarkdownColumn(sqlalchemy.types.TypeDecorator): return unicode(value) def process_result_value(self, value, dialect): + if value is None: + return None + return MarkdownString(value)