Вы можете использовать column_formatters , чтобы настроить внешний вид вашего поля в виде списка:
* Формат 1004 *». (Json_value))
Класс MyView (ModelView):
column_formatters = {
'my_json_field': json_formatter,
}
Или вы можете использовать column_type_formatters , чтобы применить этот стиль ко всем полям словаря в вашем представлении:
* Формат 1011 *». (Json_value))
MY_FORMATTERS = typefmt.BASE_FORMATTERS.copy ()
MY_FORMATTERS [dict] = json_formatter
Класс MyView (ModelView):
column_type_formatters = MY_FORMATTERS
Есть несколько других примеров использования форматеров flask_admin при переполнении стека, но не повредит иметь один JSON-специфичный.
flask_admin.form.fields.JSONField
можно переопределить, чтобы показывать симпатичные значения на входе. Для него используется атрибут form_overrides :
from flask_admin.contrib.sqla.view import ModelView
from flask_admin.form import fields
class JSONField(fields.JSONField):
def _value(self):
if self.raw_data:
return self.raw_data[0]
elif self.data:
return json.dumps(self.data, ensure_ascii=False, indent=2)
else:
return ''
class MyModel(BaseModel):
form_overrides = {
'my_field': JSONField,
}