django - 如何限制 wagtail.documents.blocks.DocumentChooserBlock 的文件类型?
问题描述
所以我想限制管理员可以选择使用wagtail.documents.blocks.DocumentChooserBlock
. 我似乎在任何地方都找不到任何文档。这是我找到的最多的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'
我想限制上传文件的类型。
解决方案
我会尝试在 .save() 方法期间引发验证错误。这将允许您阻止该操作并重定向用户以选择正确的文件格式。
推荐阅读
- android - Flutter 切换开关和共享首选项
- hyperledger-fabric - Hyperledger:对等方不断出现“会员视图已更改。对等方上线/下线”错误
- android - android:windowSoftInputMode="adjustResize" 不适用于 TranslucentTheme 活动
- c# - POST 请求实现
- python - '/bin/convert_to_uff.py': 没有这样的文件或目录
- c# - 具有 false 值的 ReferenceOutputAssembly 标记的项目参考不会复制其 SatelliteDlls
- mysql - 我不知道这个 SQL 查询中的错误在哪里
- java - Java、CriteriaBuilder、ORA-00907:缺少右括号
- laravel-5 - 如何在数据提交时替换中间件中的数据
- matlab - 从 amazon-s3 加载特定文件