如何在Django Rest Framework和Django的视图中预处理上传的图像



我决定处理上传的图像,以获取视图中的GPS位置。

代码工作并保存到数据库中,但我收到了一个FileNotFoundError at /api/v1/addWaste/ [Errno 2] No such file or directory: '/tmp/tmpnsym9i2b.upload.jpg'错误的提示。

我了解到这是因为我的上传大于2.5mb。

它更复杂,因为数据最终被保存在数据库中。

以下是我使用Django Rest Frameworks Generic Create View 的视图代码片段

def create(self, request, *args, **kwargs):

serializer = self.get_serializer(data=request.data)
# file = request.FILES['files']
serializer.is_valid(raise_exception=True)

# geospatial fields
picture=(serializer.validated_data['field_picture'])
print(picture.temporary_file_path())

latitude, longitude = get_coordinates(picture)
serializer.validated_data['latitude']= latitude
serializer.validated_data['longitude'] = longitude
# geom
serializer.validated_data['geom'] = Point(latitude,longitude)
serializer.save()
if serializer.save():
return Response({
'Response': 'Waste point Created suceesfully',
'payload': serializer.data 
})
```

Here is a copy of my terminal debug message 

/.local/share/virtualenvs/Backend bhMgLIsh/lib/python3.8/site packages/django/core/files/move.py";,第56行,在file_move_safe中将open(old_file_name,'rb'(作为old_file:FileNotFoundError:[Erno 2]没有这样的文件或目录:'/tmp/tmpnsym9i2b.upload.jpg'[2021年6月2日11:24:51]";POST/api/v1/addWaste/HTTP/1.1";500 179179

Thank you for your help.

所以Django有一种处理大文件上传的方法,它通过本地机器上的tmp文件夹将文件上传。

因此,如何解决我的挑战是预处理模型中的所有内容。通过使用保存方法创建表。

因此所有9my逻辑(都是在它被保存到DB之前处理的。

它运行良好。

相关内容

  • 没有找到相关文章

最新更新