Я часто делаю модели с Text
столбцами, которые содержат форматированный Markdown форматированный текст.Мои модели выглядят так:
class Document(Base):
id = Column(Integer, primary_key=True)
title = Column(Unicode(250))
description = Column(Text)
description_html = Column(Text)
Мои формы редактирования (а) считывают и записывают в description
, а затем (б) записывают версию в формате Markdown в description_html
.Мои (Jinja2) шаблоны представления (c) загружают версию HTML с {{ doc.description_html|safe }}
.
. Я хотел бы сократить эти три повторяющиеся операции в одно определение столбца, например:
class Document(Base):
id = Column(Integer, primary_key=True)
title = Column(Unicode(250))
description = Column(MarkdownText)
Где MarkdownText
- это новый тип столбца, который:
- Делает два столбца в таблице базы данных (description и description_html),
- При записи в столбец также записываетОтформатируйте версию в столбце html и
- Предоставляет метод
__html__()
, который возвращает содержимое столбца html.Это позволит использовать его из шаблона Jinja2 как {{ doc.description }}
без фильтра safe
.
Вопрос: Возможен ли № 1?Могу ли я определить столбец, который состоит из двух столбцов?