0

我正在编写一个自定义 StreamBlock,旨在根据给定 CSV 文件中的数据呈现表格。CSV 文件将存储在通常的文档存储中,因此该块需要显示文档选择器以让用户选择一个 CSV 文件。

我想将此块的文档选择器限制为文件名以 结尾的文档.csv,而不影响任何其他文档选择器。我深入研究代码试图找出一种方法来做到这一点,但经过 30 分钟的探索,看起来没有任何明显的方法可以确定admin/documents/chooser/视图请求的来源,这就是实际呈现的内容文档列表。

目前我对如何做到这一点的最佳猜测是子类化DocumentChooserBlockAdminDocumentChooser,这样我就可以告诉它使用自定义版本的wagtaildocs/js/document-chooser-modal.js. 每当 CSVTableBlock 的 Document 选择器向admin/documents/chooser/. 然后我可以实现construct_document_chooser_queryset查找该自定义 GET arg,因此它知道何时将查询集过滤documents为仅 .csv 文件。

但我真的完全不确定这是否是正确的方法,或者该策略是否有可能奏效。有没有更好/可能的方法来做到这一点?

4

1 回答 1

0

你其实不需要做任何事情,几乎所有这种过滤场景的用例,编辑器都可以在选择器模态的搜索框中输入“.csv”

于 2021-10-02T13:14:40.653 回答