Flask-Admin:按不同字段对列进行排序

Flask-Admin: sort column by different field

我试图在 Flask-Admin 中控制模型列表的排序,但我对 column_sortable_list 的工作原理有点困惑。 (我相信这就是我应该使用的。)

就我而言,我有两列感兴趣:“word”,一个文本列,和“created”,一个时间戳。问题是,我希望“word”在单独的数据库字段(在同一个 table 中)、“sortable_word”上排序,这是“word”的一个版本,正则化为小写,带有重音符号字符替换为它们的非重音版本,所有非 [a-z] 字符被删除等。

文档说“如果你想在排序时明确指定要使用的 field/column,你可以使用元组”,并显示示例 column_sortable_list = ('name', ('user', 'user.username')),但示例不是对,要不我看不懂格式。

对我来说,column_sortable_list = ('word', ('word', 'sortable_word'))不行; “word”仅根据“word”排序。使用 ('word', ('word', 'sortable_word'), 'created') 以同样的方式失败,但也按“创建”(正确)排序。如果我使用 (('word', 'sortable_word'), 'created'),那么只有“创建”是 sortable.

正确的语法是什么?

我使用这样的方括号,但是我在文档中找不到它...

column_sortable_list =  [
    'word',
    'created'
    ]

按如下方式编写您的专栏:

# Only sorting on one column
column_sortable_list = (('word', ('sortable_word', )), )

# multiple sort columns
column_sortable_list = (('word', ('sortable_word', )), 'created')