新しいユーザーを登録するための拡張UserProfileがあります。私のuser_created関数は、基本的なUserインスタンスの登録時に送信されるシグナルに接続し、フォームの拡張フィールドを使用して新しいUserProfileを作成します。コードは次のとおりです。
from registration.signals import user_registered
from accounts.forms import ExtendedRegistrationForm
import accounts
from accounts.models import UserProfile
def user_created(sender, user, request, **kwargs):
form = ExtendedRegistrationForm(request.POST, request.FILES)
data = UserProfile(user=user)
data.is_active = False
data.first_name = form.data['first_name']
data.last_name = form.data['last_name']
data.pid = form.data['pid']
data.image = form.data['image']
data.street = form.data['street']
data.number = form.data['number']
data.code = form.data['code']
data.city = form.data['city']
data.save()
user_registered.connect(user_created)
問題は、このフォームにアバター用の画像フィールドがあることです。コードからわかるように、フォームのデータリストからデータを取得しています。しかし、どうやらimageFieldはPOSTリクエストでデータを送信しないので(私が取得しているようMultiValueDictKeyError at /user/register/
にKey 'image' not found in <QueryDict...
)、data[]からデータを取得することはできません。
代替テキストhttp://img38.imageshack.us/img38/3839/61289917.png
通常の変数が「data」内にある場合、どこでファイルを探す必要がありますか?それとも問題はもっと複雑ですか?奇妙なことに、私のフォームには、cleaned_data属性がありません...ここでdmitkoのメソッドを使用していました:http ://dmitko.ru/?p = 546&lang=en 。私の:
フォーム: http: //paste.pocoo.org/show/230754/
モデル: http: //paste.pocoo.org/show/230755/