2
私は個々のユーザーのアバターを変更するための画像アップロードを実装しようとしています。今私が持っている問題は、それがフォルダにアップロードされないということです。これは、管理者から動作しますが、それは私が出力を表示するためのコードを変更した私はImageFieldがアップロードされない
views.py
if 'avatar_upload' in request.POST:
avatar_form = UserAvatarForm(request.POST, request.FILES, instance=request.user.get_profile())
if avatar_form.is_valid():
avatar_form.save()
return HttpResponse(request.POST['avatar'])
return HttpResponse("Failed")
を作成したテンプレート上では動作しません。ファイル名はPOST
です。しかし、私はrequest.FILES
に何も持っていません。だから私はそれがそこに問題であると推測しています、そして、私は問題が何であるかを今までには分かっていません。それとも、他の場所で何か問題がありますか?
テンプレート*
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
{% for item in avatar_form %}<p>{{ item.label }}: {{ item }}</p>
{% endfor %}
<input type="submit" value="Upload avatar" name="avatar_upload">
</form>
私は今も試してみました。そして、それでも動作しません:/ – starcorn
@starcornそれは奇妙です、あなたはサーバーをリロードし、アップロードする前にページを新鮮にしましたか? 'request.FILES'ではなく' request.POST'でファイル名を取得するのは、通常、 'multipart/form-data'がないためです。 – okm
今は動作しているようですが、代わりに 'InMemoryUploadedFile'エラーが発生します。私はDjangoがファイルのアップロードをバックグラウンドで処理すると思っていました。しかし、それは 'MEDIA_FOLDER'を保存するコードを書かなければならないようだし、ユーザーのためのアバターURLも更新するのだろうか? – starcorn