如何限制wagtail.documents.blocks.DocumentChooserBlock的文件类型?

时间:2019-05-14 08:26:13

标签: django wagtail

因此,我想限制管理员可以选择使用wagtail.documents.blocks.DocumentChooserBlock上传到CMS的文件类型。我似乎在任何地方都找不到任何文档。这是我找到的最多http://docs.wagtail.io/en/v2.0/topics/streamfield.html#documentchooserblock

我仔细检查了代码,看它们是否呈现了输入字段。但是它是一个按钮。

<button type="button" class="button action-choose button-small button-secondary">Choose a document</button>

这将打开一个选择器模型,用于选择以前上传的文档或上传新的​​文档。

我还希望找到用于选择器的模板文件。但我无法找到该输入的位置。覆盖选择器模板似乎需要大量工作。

这里我要添加DocumentChooserBlock。

class IndicatorWidgetsBlock(blocks.StreamBlock):
    flourish = blocks.StructBlock(
        [
            ('label', blocks.CharBlock(required=False,
                                       help_text="This widget's tab label on the indicator")),
            ('title', blocks.CharBlock(required=True)),
            ('hide_title', blocks.BooleanBlock(default=False, required=False)),
            ('html_file', DocumentChooserBlock(required=True)),
            ('sdg', blocks.ChoiceBlock(required=False, choices=sdg_choices,
                                       label='SDG Goal')),
            ('source', blocks.RichTextBlock(
                features=['link'], required=False)),
        ],
        icon='code',
        template='takwimu/_includes/dataview/code.html'
    )
    class Meta:
        icon = 'form'

我想限制上传的文件类型。

1 个答案:

答案 0 :(得分:0)

我会尝试在.save()方法期间引发验证错误。这样一来,您就可以阻止该操作,并重定向用户以选择正确的文件格式。