我在Flask-Admin中有一个带过滤器的模型(例如,基于其他模型的外键).
我想在admin中生成从前端到此模型视图的链接,并应用过滤器值.我注意到它将?flt0_0 =添加到url中,因此整个地址看起来有点:
http:/…/ admin / model_view_< my model> /?flt0_0 =< filter value>
生成这样的路线的最佳方法是哪种?
最佳答案 不幸的是,目前还没有公共API.这是一个简短的片段,您现在可以使用它来生成fltX_Y查询字符串:
class MyView(BaseModelView):
...
def get_filter_arg(self, filter_name, filter_op='equals'):
filters = self._filter_groups[filter_name].filters
position = self._filter_groups.keys().index(filter_name)
for f in filters:
if f['operation'] == filter_op:
return 'flt%d_%d' % (position, f['index'])
然后,您可以在视图实例上调用此方法:
print my_view.get_filter_arg('Name', 'contains')