1
我想爲用戶上傳的文件添加一些驗證。這需要通過一個我稱爲「sumpin」的自定義腳本來運行,該腳本僅將文件路徑作爲變量併發回將驗證的JSON數據。我的腳本中的所有內容都是獨立工作的,將它們放在發生錯誤的地方。
在Django中,上傳時如何獲取上傳文件的文件路徑?
由於這是文件驗證,我決定展開我已經工作的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」路徑傳入我的驗證器來運行我的自定義腳本?
- 有沒有更好的方法來處理上傳的文件,比如在帶有「保存」或「乾淨」功能的主類中?