我真的很喜欢flask-admin的CRUD功能。 不幸的是,我还没有找到一种使JSON DB字段更具可读性的方法。
JSON字段以文本字符串的形式显示在列表视图(以及编辑视图)中。
有人可以给我任何指针来开始美化列表视图(以及后来的编辑视图)吗?
答案 0 :(得分:1)
您可以使用column_formatters自定义列表视图中字段的外观:
org.assertj.core.api.Assertions
或者您可以使用column_type_formatters将此样式应用于视图中的所有词典字段:
java8
在Stack Overflow上有several other examples个flask_admin格式化程序使用,但是拥有一个特定于JSON的版本不会受到损害。
可以覆盖 import json
from flask_admin.contrib.sqla.view import ModelView
from jinja2 import Markup
def json_formatter(view, context, model, name):
value = getattr(model, name)
json_value = json.dumps(value, ensure_ascii=False, indent=2)
return Markup('<pre>{}</pre>'.format(json_value))
class MyView(ModelView):
column_formatters = {
'my_json_field': json_formatter,
}
以在输入中显示漂亮的值。使用form_overrides属性:
import json
from flask_admin.model import typefmt
from flask_admin.contrib.sqla.view import ModelView
from jinja2 import Markup
def json_formatter(view, value):
json_value = json.dumps(value, ensure_ascii=False, indent=2)
return Markup('<pre>{}</pre>'.format(json_value))
MY_FORMATTERS = typefmt.BASE_FORMATTERS.copy()
MY_FORMATTERS[dict] = json_formatter
class MyView(ModelView):
column_type_formatters = MY_FORMATTERS