С flask_sqlalchemy
меня есть две таблицы (A & B), соединенные вместе с помощью прокси-таблицы ассоциации (C), в которой есть некоторые дополнительные поля.
На данный момент с flask_admin у меня есть ModelView
на C, и в этом представлении списка я column_formatters
(с опцией column_formatters
) ссылку на каждый элемент в соответствующем столбце таблицы A на свою страницу detail_view.
Он отлично работает, но я не знаю на этой странице сведений о том, как добавить filtered
таблицу на основе C только с строками, относящимися к выбранному элементу A.
Хорошо, я отвечаю себе, если кому-то это нужно.
Я делаю обратное, создавая другой 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