Editing HSTORE and JSON columns - Flask-Admin
Postgres has a couple of column types for semi-structured data, and Flask-Admin didn’t have a good way to edit them. I added support for both.
For HSTORE (Postgres key-value pairs), I reused the existing InlineFieldList and InlineFormField with a few changes (#1158). Instead of editing a raw string, you get a row of key/value inputs you can add to and remove from.
class ServerView(ModelView):
form_columns = ['name', 'metadata'] # metadata is an HSTORE column
For JSON columns, there was already a JSONField in the GeoAlchemy backend. I moved it into flask_admin/form/fields.py so both backends could use it, and made it handle non-ASCII characters and show a clear error on malformed JSON instead of blowing up (#1245).