我决定处理上传的图像,以获取视图中的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之前处理的。
它运行良好。