一尘不染

如何限制具有FileFields的ModelForms的文件上传文件类型?

django

我的目标是将Django ModelForm上的FileField限制为PDF和Word文档。我用谷歌搜索的所有答案都与创建一个单独的文件处理程序有关,但是我不确定如何在ModelForm的上下文中这样做。我可以用来限制上传文件类型的settings.py中有设置吗?


阅读 486

收藏
2020-04-02

共1个答案

一尘不染

创建一个验证方法,例如:

def validate_file_extension(value):
    if not value.name.endswith('.pdf'):
        raise ValidationError(u'Error message')

并将其包含在FileField验证器中,如下所示:

actual_file = models.FileField(upload_to='uploaded_files', validators=[validate_file_extension])

此外,你应该手动设置模型并对其进行迭代,而不是手动设置模型允许的扩展名。

2020-04-02