我们通过覆盖ModelView在我们的应用程序中执行此操作。
https://github.com/mrjoes/flask- admin/blob/master/flask_admin/contrib/sqla/view.py#L654
我仔细研究了Flask-Admin的源代码,自从我们上次编辑该代码以来,它们使API更加易于使用,因为您看起来可以做到:
from flask.ext.admin.contrib.sqla.view import ModelView, func
class PaidOrderView(ModelVew):
def get_query(self):
return self.session.query(self.model).filter(self.model.paid==True)
def get_count_query(self):
return self.session.query(func.count('*')).filter(self.model.paid==True)
(我们重写了get_list(),但效果并不那么好。)
然后可以像这样使用它:
admin.add_view(PaidOrderView(Order, db.session))
让我知道这是否不适合您,我可以再看看。