Пример #1
0
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} )