我有一個擴展的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...
),所以我不能從數據[]獲取它。
alt text http://img38.imageshack.us/img38/3839/61289917.png 如果通常的變量在'data'裏面,我應該在哪裏查找文件?或者問題更復雜?奇怪的是,我的表單沒有屬性cleared_data ...我在這裏使用dmitko的方法:http://dmitko.ru/?p=546&lang=en。我:
形式:http://paste.pocoo.org/show/230754/
型號:http://paste.pocoo.org/show/230755/
該死的你是對的。 Tally忘記驗證它。將在一秒鐘內檢查。 – crivateos 2010-06-28 09:18:02
不幸的是,當我檢查表單的有效性時,它沒有通過。我不確定爲什麼會發生這種情況,因爲字段似乎通過了正確的數據。 – crivateos 2010-06-28 10:28:52