Я пытаюсь загрузить файл в мое облако.Когда я загружаю этот файл, мне также нужно получить информацию о его версии.
Пример запроса POST ( Body ), как показано ниже (это без сценария FileVersionInfo ):
[
Теперь, когда я пытаюсь загрузить файл, я получаю следующую ошибку:
Может кто-нибудь объяснить мне, как с этим справиться ( Файл не найден Ошибка )?Я могу ошибаться, придерживаясь этого подхода, но может ли кто-нибудь предложить мне лучший подход?
Моя модель django определена следующим образом:
import os
import win32api
from django.db import models
from custom.storage import AzureMediaStorage as AMS
class File(models.Model):
'''
File model
'''
file = models.FileField(blank=False, storage=AMS(), null=False)
filetype = models.CharField(max_length=25, default="")
timestamp = models.DateTimeField(auto_now_add=True)
version = models.CharField(max_length=25, default="")
remark = models.CharField(max_length=100, default="")
@property
def get_file_type(self):
return os.path.splitext(str(self.file))[1]
@property
def get_version(self):
"""
Read all properties of the given file and return them as a dictionary.
"""
props = {'FileVersion': None}
# For Debugging (This returns False)
print("Is the file there? ", os.path.isfile(str(self.file)) )
# To get the FileVersion information
fixedInfo = win32api.GetFileVersionInfo(str(self.file), '\\')
print("FixedInfo: ", fixedInfo)
props['FixedFileInfo'] = fixedInfo
props['FileVersion'] = "%d.%d.%d.%d" % (fixedInfo['FileVersionMS'] / 65536,
fixedInfo['FileVersionMS'] % 65536, fixedInfo['FileVersionLS'] / 65536,
fixedInfo['FileVersionLS'] % 65536)
# For Debugging
print("Type of props['FileVersion']:", type(props['FileVersion']))
print("props['FileVersion']: ", props['FileVersion'])
return props['FileVersion']
def save(self, *args, **kwargs):
self.filetype = self.get_file_type
self.version = self.get_version
super(File, self).save(*args, **kwargs)