Flask-Admin字段(列)格式化

digwtx

在某些情况下,我们需要对模型的某个属性进行格式化。比如,默认情况下,日期时间显示出来会比较长,这时可能需要只显示月和日,这时候,列格式化就派上用场了。

比如,如果你要显示双倍的价格,你可以这样做:

pythonclass MyModelView(BaseModelView):
    column_formatters = dict(price=lambda v, c, m, p: m.price*2)

或者在Jinja2模板中使用宏:

htmlfrom flask.ext.admin.model.template import macro

class MyModelView(BaseModelView):
    column_formatters = dict(price=macro('render_price'))

# in template
{% macro render_price(model, column) %}
    {{ model.price * 2 }}
{% endmacro %}

回调函数模型:

pythondef formatter(view, context, model, name):
    # `view` is current administrative view
    # `context` is instance of jinja2.runtime.Context
    # `model` is model instance
    # `name` is property name
    pass

正好和上面的v, c, m, p相对应。


原文:http://flask123.sinaapp.com/article/58/

阅读 3.7k

digwtx
python flask攻城狮

python flask工程师

1.7k 声望
62 粉丝
0 条评论

python flask工程师

1.7k 声望
62 粉丝
宣传栏