【发布时间】:2017-02-20 18:52:49
【问题描述】:
我正在尝试为用户上传的文件添加一些验证。这需要通过我制作的名为“sumpin”的自定义脚本运行,该脚本仅将文件路径作为变量并发送回将验证的 JSON 数据。我的脚本中的所有内容都是独立工作的,将它们放在发生错误的地方。
由于这是文件验证,我决定扩展我已经在工作的 file_extension 验证器。
models.py
from allauthdemo.fileuploadapp.slic3rcheck import sumpin
def user_directory_path_files(instance, filename):
return os.path.join('uploads', str(instance.objectid), filename)
def validate_file_extension(value):
ext = os.path.splitext(value.name)[1]
valid_extensions = ['.stl','.STL']
if not ext in valid_extensions:
raise ValidationError(u'Please upload a .stl file type only')
data = sumpin(value.path)
print (data)
class subfiles(models.Model):
STL = models.FileField(_('STL Upload'),
upload_to=user_directory_path_files, validators=[validate_file_extension])
我得到的错误是路径(value.path)无效。
这是不正确的路径,因为 upload_to 标记必须在以后更改它。这可能很明显,但是当我的脚本被调用时,我还需要将文件放在文件路径位置。所以基本上我的问题是......
- 如何将“upload_to”路径传递到我的验证器以运行我的自定义脚本?
- 有没有更好的方法来处理上传的文件,比如在主类中使用“保存”或“清理”功能?
【问题讨论】:
标签: python django validation