from django.core.validators import FileExtensionValidator
from django.db import models
class MyModel(models.Model):
pdf_file = models.FileField(upload_to='foo/',
validators=[FileExtensionValidator(allowed_extensions=['pdf'])])
注意,此方法不安全。Django docs的引文:
Don’t rely on validation of the file extension to determine a file’s
type. Files can be renamed to have any extension no matter what data
they contain.
一个非常简单的方法是使用自定义验证器。
在应用程序的
validators.py
中:那么在你的
models.py
中:。。。使用表单域的验证程序:
另请参见:How to limit file types on file uploads for ModelForms with FileFields?。
版本
1.11
中的Django为模型字段添加了一个新的FileExtensionValidator
,文档在这里:https://docs.djangoproject.com/en/dev/ref/validators/#fileextensionvalidator。如何验证文件扩展名的示例:
注意,此方法不安全。Django docs的引文:
还有新的
validate_image_file_extension
(https://docs.djangoproject.com/en/dev/ref/validators/#validate-image-file-extension)用于验证图像扩展(使用枕头)。有一个Django snippet这样做:
相关问题 更多 >
编程相关推荐