我正在编写一个自定义 StreamBlock,旨在根据给定 CSV 文件中的数据呈现表格。CSV 文件将存储在通常的文档存储中,因此该块需要显示文档选择器以让用户选择一个 CSV 文件。
我想将此块的文档选择器限制为文件名以 结尾的文档.csv
,而不影响任何其他文档选择器。我深入研究代码试图找出一种方法来做到这一点,但经过 30 分钟的探索,看起来没有任何明显的方法可以确定admin/documents/chooser/
视图请求的来源,这就是实际呈现的内容文档列表。
目前我对如何做到这一点的最佳猜测是子类化DocumentChooserBlock
和AdminDocumentChooser
,这样我就可以告诉它使用自定义版本的wagtaildocs/js/document-chooser-modal.js
. 每当 CSVTableBlock 的 Document 选择器向admin/documents/chooser/
. 然后我可以实现construct_document_chooser_queryset
查找该自定义 GET arg,因此它知道何时将查询集过滤documents
为仅 .csv 文件。
但我真的完全不确定这是否是正确的方法,或者该策略是否有可能奏效。有没有更好/可能的方法来做到这一点?