从 <InMemoryUploadedFile> Django 对象中定位文件路径
我有一个Django应用,当我提交一个包裹时,它应该返回包裹里面的值。
我把表单提交到一个叫“insert”的视图:
request.FILES['file']
这个视图返回的是文件对象,但它的类型是< InMemoryUploadedFile>。
我需要的是一个方法,能够获取上传文件的绝对路径,这样我就可以把这个路径传给一个方法,来获取我需要的值。
有没有人知道我该怎么做?
谢谢!
2 个回答
1
Daniel Roseman在这个上下文中是对的。但是,如果你已经通过 .create(...)
或 obj.save()
方法把对象创建或插入到数据库里,那么你可以通过 obj.<field_name>.name
来获取图片的路径。
举个例子:
假设你有一个包含图片字段的模型。
my_image = models.ImageFiled(upload_to='my_upload_dir')
所以,
obj = ImageModel.objects.create(image=request.FILES['image']) # let's insert it to db
image_path = obj.image.name
# will return
'my_upload_dir/myimagename.jpg'
14
当然,"InMemory"这个名字就说明了这个文件只存在于内存中,所以它是没有路径的,对吧?