我目前正在尝试使用Flask Admin上的模板为detail_view创建自定义ModelView。但是,我正在努力弄清楚如何访问用户正在查看其详细信息的模型的实例。
这是我的自定义ModelView:
class ShopModelView(MyModelView):
can_view_details = True
details_template = "custom_detail_view.html"
@expose('/details/', methods=('GET', 'POST'))
def details_view(self):
self._template_args['all_transactions'] = #current_shop_object#.transactions.order_by(Transaction.timestamp.desc())
return super(ShopModelView, self).details_view()
看着this post,可以使用self.model
获得模型的类,但是这将返回该类,而不是所访问的特定模型的实例。
Templates和ModelView上的文档似乎没有对其进行解释。
如何获取正在访问的特定模型的实例?
答案 0 :(得分:0)
结果表明,可以通过jinja2模板文件中的变量model
访问模型的当前实例。因此,与其像我尝试的那样将变量解析为模板参数,不如:self._template_args['all_transactions'] = #current_shop_object#.transactions.order_by(Transaction.timestamp.desc())
,
{{model.transactions.all()}}实现了我想要的结果。