2012-05-02 17 views
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> 

答えて

4

は、テンプレートのフォームでenctype="multipart/form-data"を設定することがありますか?

+0

私は今も試してみました。そして、それでも動作しません:/ – starcorn

+0

@starcornそれは奇妙です、あなたはサーバーをリロードし、アップロードする前にページを新鮮にしましたか? 'request.FILES'ではなく' request.POST'でファイル名を取得するのは、通常、 'multipart/form-data'がないためです。 – okm

+0

今は動作しているようですが、代わりに 'InMemoryUploadedFile'エラーが発生します。私はDjangoがファイルのアップロードをバックグラウンドで処理すると思っていました。しかし、それは 'MEDIA_FOLDER'を保存するコードを書かなければならないようだし、ユーザーのためのアバターURLも更新するのだろうか? – starcorn

関連する問題