使用flask_sqlalchemy
,我有两个表(A&B)通过关联代理表(C)连接在一起,其中有一些其他字段。
就目前而言,我使用flask_admin在C上有一个ModelView
,并且在此列表视图中,我已在A表相关列的每个项目上附加了一个链接(使用column_formatters
选项)到details_view页。
工作正常,但我不知道在此详细信息视图页面中,如何基于C附加仅与所选A项目相关的行的filtered
表。
答案 0 :(得分:0)
好吧,如果有人需要,我在这里回答自己。
我通过创建另一个list_view来执行相反的操作,但是对于我想要的选定记录,通过修改index_view方法并将多余的参数(细节)传递给模板来实现:
class TableCView(admin.ModelView):
list_template = 'modified_listview.html'
@expose('/')
def index_view(self):
self.a_id = request.args.get('id', None)
self._template_args['a_id'] = self.a_id # add more params here
return super(TableCView, self).index_view()
def get_query(self):
# Filter records by a_id
query = super(TableCView, self).get_query()
if self.a_id:
query = query.filter(self.model.a_id == self.a_id)
return query
def get_count_query(self):
query = super(TableCView, self).get_count_query()
if self.a_id:
query = query.filter(self.model.a_id == self.a_id)
return query