我的目标是将 Django ModelForm 上的 FileField 限制为 PDF 和 Word 文档。我在谷歌上搜索到的答案都涉及创建一个单独的文件处理程序,但我不确定如何在 ModelForm 的上下文中执行此操作。我可以使用 settings.py 中的设置来限制上传文件类型吗?
创建一个验证方法,例如:
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])
此外,您应该在setting.py 上创建一个列表并对其进行迭代,而不是手动设置模型允许的扩展。
Edit
要过滤多个文件:
def validate_file_extension(value):
import os
ext = os.path.splitext(value.name)[1]
valid_extensions = ['.pdf','.doc','.docx']
if not ext in valid_extensions:
raise ValidationError(u'File not supported!')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)