def register(request): # boolean value # Установлено в False при инициализации. Изменим на True при успешной регистрации. registered = False # Если HTTP POST, обработаем форму. if request.method == 'POST': # Получаем информацию из форм. # Мы используем две формы UserForm и UserProfileForm. user_form = UserForm(data=request.POST) profile_form = UserProfileForm(data=request.POST) # Если обе формы прошли проверку... if user_form.is_valid() and profile_form.is_valid(): # Сохраним данные пользователя из формы в database. user = user_form.save() # Хешируем пароль с помощью set_password method. user.set_password(user.password) user.save() # Пока пользователь настраивает свой профиль не выполнять commit=False. profile = profile_form.save(commit=False) profile.user = user # Юзер хочет картинку? # Если да, предоставим ему поле для ввода картинки. if 'picture' in request.FILES: profile.picture = request.FILES['picture'] # Сохранить экземпляр модели UserProfile. profile.save() # Изменить переменную при успешной регистрации. registered = True # Ошибки? # Печать ошибок на terminal. else: print user_form.errors, profile_form.errors # Не HTTP POST, строим два эеземпляра ModelForm . # Эти формы пустые , предназначены для пользовательских вводов. else: user_form = UserForm() profile_form = UserProfileForm() # Render the template depending on the context. return render(request, 'myauth/register.html', {'user_form': user_form, 'profile_form': profile_form, 'registered': registered} )