3

私はdjango-avatarsを使用して、自分のWebサイトのユーザープロファイルアバターを処理しています。私は現在、ユーザーがアバターをアップロードする機能を含む、サイト用のネイティブ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メソッドを書き直して自分の形式を受け入れる最も簡単な方法は何ですか)

4

1 に答える 1

5

request.FILES要素は、ラッパー内のファイルのようなものです。ファイルデータを に貼り付け、StringIOそれをdjango.core.files.Fileコンストラクターに渡し、それを に渡しますsave()

于 2012-05-06T03:01:15.063 に答える