我正在使用django-avatars来处理我网站的用户个人资料头像。我目前正在为该网站开发一个原生的Android应用程序,其中包括用户上传头像的功能。我通过在base 64中编码的get参数传递图像数据。在我的Django视图中,我有
data = base64.b64decode(request.POST['data'])
out = open("etc/test.jpeg", "wb")
out.write(data)
out.close()
解码图像。这工作正常(test.jpeg是我希望它的文件),但我无法将其绑定到django-avatars。
通过django-avatars的来源,以下内容用于创建新的头像:
avatar = Avatar(
user = request.user,
primary = True,
)
image_file = request.FILES['avatar']
avatar.avatar.save(image_file.name, image_file)
avatar.save()
我的问题是,如何将我的文件数据转换为所需的request.FILES格式,(或者是重写save方法以接受我的格式的最简单方法)
答案 0 :(得分:5)
request.FILES
元素在包装器中是文件类似的。将文件数据粘贴到StringIO
,将其传递给django.core.files.File
构造函数,然后将 传递给save()
。