У меня расширенный UserProfile для регистрации новых пользователей.Моя функция user_created соединяется с сигналами, посылаемыми при регистрации базового экземпляра пользователя, и создает новый профиль пользователя с расширенными полями из моей формы.Вот код:
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...
), поэтому я не могу получить их из данных [].
альтернативный текст http://img38.imageshack.us/img38/3839/61289917.png Если обычные переменные находятся внутри «данных», где мне искать файлы?Или проблема сложнее?Странно то, что моя форма не имеет атрибута cleaned_data ... Я использовал метод dmitko здесь: http://dmitko.ru/?p=546&lang=en.Мои:
формы: http://paste.pocoo.org/show/230754/
модели: http://paste.pocoo.org/show/230755/