Пример #1
0
def signup_view(request):
    # username = request.POST['username']
    # password = request.POST['password']
    # email = request.POST['email']
    # name = request.POST['name']
    #
    # if User.objects.filter(username=username):
    #     return HttpResponse('이미 사용중인 username입니다')
    # if User.objects.filter(email=email):
    #     return HttpResponse('이미 사용중인 email입니다.')
    # user = User.objects.create(
    #     username=username,
    #     password=password,
    #     email=email,
    #     name=name,
    # )
    # login(request, user)
    if request.method == 'POST':
        form = SignupForm(request.POST)
        if form.is_valid():
            user = form.save()
            login(request, user)
            return redirect('posts:post-list')
    else:
        form = SignupForm()
    context = {
        'form': form,
    }
    return render(request, 'members/signup.html', context)
Пример #2
0
def signup_view(request):
    if request.method == 'POST':
        form = SignupForm(request.POST)
        if form.is_valid():
            user = form.save()
            print(user)
            login(request, user)
            return redirect('todos:todo-list')
    else:
        form = SignupForm()

    secret = get_secret()
    naver_request_url = naver_login_url(
        client_id=secret['NAVER_CLIENT_ID'],
        redirect_url='http://localhost:8000/members/naver-signup',
        state='RANDOM_STATE')

    facebook_request_url = facebook_login_url(
        client_id=secret['FACEBOOK_CLIENT_ID'],
        redirect_url='http://localhost:8000/members/facebook-signup',
        state='RANDOM_STATE')

    context = {
        'signup_form': form,
        'naver_request_url': naver_request_url,
        'facebook_request_url': facebook_request_url
    }
    return render(request, 'members/signup.html', context)
Пример #3
0
def signup_view(request):
    # render하는 경우
    #  1. POST요청이며 사용자명이 이미 존재할 경우
    #  2. POST요청이며 비밀번호가 같지 않은 경우
    #  3. GET요청인 경우
    # redirect하는 경우
    #  1. POST요청이며 사용자명이 존재하지 않고 비밀번호가 같은 경우
    """
    if request.method가 POST면:
        if 사용자명이 존재하면:
            render1
        if 비밀번호가 같지 않으면:
            render2
        (else, POST면서 사용자명도없고 비밀번호도 같으면):
            redirect
    (else, GET요청이면):
        render
    if request.method가 POST면:
        if 사용자명이 존재하면:
        if 비밀번호가 같지 않으면:
        (else, POST면서 사용자명도없고 비밀번호도 같으면):
            return redirect
    (POST면서 사용자명이 존재하면)
    (POST면서 비밀번호가 같지않으면)
    (POST면서 사용자명이 없고 비밀번호도 같은 경우가 "아니면" -> GET요청도 포함)
    return render
    :param request:
    :return:
    """
    context = {}
    if request.method == 'POST':
        # POST로 전달된 데이터를 확인
        # 올바르다면 User를 생성하고 post-list화면으로 이동
        # (is_valid()가 True면 올바르다고 가정)
        form = SignupForm(request.POST)
        if form.is_valid():
            user = form.save()
            # user = User.objects.create_user(
            #     username=form.cleaned_data['username'],
            #     password=form.cleaned_data['password1'],
            # )
            login(request, user)
            # form이 유효하면 여기서 함수 실행 종료
            return redirect('posts:post-list')
        # form이 유효하지 않을 경우, 데이터가 바인딩된 상태로 if-else구문 아래의 render까지 이동
    else:
        # GET요청시 빈 Form을 생성
        form = SignupForm()

    # GET요청시 또는 POST로 전달된 데이터가 올바르지 않을 경우
    #  signup.html에
    #   빈 Form또는 올바르지 않은 데이터에 대한 정보가
    #   포함된 Form을 전달해서 동적으로 form을 렌더링
    context['form'] = form
    return render(request, 'members/signup.html', context)
Пример #4
0
def signup_view(request):
    if request.method == 'POST':
        form = SignupForm(request.POST)

        if form.is_valid():
            user = form.save()
            login(request, user)
            return redirect('posts:post_list')
    else:
        form = SignupForm()
    context = {'form': form}
    return render(request, 'members/signup.html', context)
Пример #5
0
def signup(request):
    if request.method == 'POST':
        form = SignupForm(request.POST, request.FILES)
        if form.is_valid():
            user = form.save()
            return render(request, 'members/signup-done.html')
    else:
        form = SignupForm()
    context = {
        'form': form,
    }
    return render(request, 'members/signup.html', context)
Пример #6
0
def signup(request):
    if request.method == 'POST':
        form = SignupForm(request.POST, request.FILES)
        if form.is_valid():
            user = form.save()
            django_login(request, user)
            return redirect('posts:post-list')
    else:
        form = SignupForm()
    context = {
        'signup_form':form,
    }
    return render(request, 'members/signup.html', context)
Пример #7
0
def signup_view(request):
    """
    ! config.views.indes 삭제

    Template: index.html을 복사해서
        /members/signup.html
    URL: /
    form: members.forms.SignupForm

    생성에 성공하면, 로그인 처리 후 posts:post-list로 redirect 처리
    """
    if request.method == 'POST':
        form = SignupForm(request.POST)

        if form.is_valid():
            user = form.save()
            login(request, user)
            return redirect('posts:post-list')
    else:
        form = SignupForm()

    context = {'form': form}
    return render(request, 'members/signup.html', context)
Пример #8
0
def signup(request):
    if request.method == 'POST':
        form = SignupForm(request.POST)
        if form.is_valid():
            user = form.save(commit=False)
            user.is_active = False
            user.save()
            current_site = get_current_site(request)
            mail_subject = 'Activate your account.'
            message = render_to_string('members/user_activate_email.html', {
                'user': user,
                'domain': current_site.domain,
                'uid': urlsafe_base64_encode(force_bytes(user.pk)).decode(),
                'token': account_activation_token.make_token(user),
            })
            to_email = form.cleaned_data.get('email')
            email = EmailMessage(
                mail_subject, message, to=[to_email]
            )
            email.send()
            return render(request, 'members/signup_done.html')
    else:
        form = SignupForm()
    return render(request, 'members/signup.html', {'form': form})
Пример #9
0
def signup_view(request):
    """
    render하는 경우
    1. POST요청이며 사용자명이 이미 존재할 경우
    2. POST요청이며 비밀번호가 같지 않는 경우
    3. GET요청인 경우
    redirect하는 경우
    1. POST요청이며 사용자명이 존재하지 않고 비밀번호가 같은 경우

    if request.method가 POST라면:
        if 사용자명이 존재하면;
            render1
        if 비밀번호가 같지 않으면;
            render2
        (else, POST면서 사용자명도없고 비밀번호도 같으면):
            redirect
    (else, GET요청이면):
        render

    if request.method가 POST라면:
        if 사용자명이 존재하면;
        if 비밀번호가 같지 않으면;
        (else, POST면서 사용자명도없고 비밀번호도 같으면):
            return redirect
    (POST면서 사용자명이 존재하면)
    (POST면서 비밀번호가 같지않으면)
    (POST면서 사용자명이 없고 비밀번호도 같은 경우가 "아니면" -> GET요청도 포함)
    return render
    """
    # URL: /members/signup/
    # Template: members/signup.html
    # Form:
    # SignupForm
    #   username, password1, password2를 받음
    # 나머지 요소들은 login.html의 요소를 최대한 재활용

    # GET요청시 해당 템플릿 보여주도록 처리
    # base.html에 있는 'Signup'버튼이 이 쪽으로 이동할 수 있도록 url 링크걸기
    context = {}
    if request.method == 'POST':
        # POST로 전달된 데이터를 확인
        # 올바르다면 User를 생성하고 Post-list화면으로 이동
        # (is_valid()가 True면 올바르다고 가정)
        form = SignupForm(request.POST)

        if form.is_valid():
            user = form.save()
            # user = User.objects.create_user(
            #     username=form.cleaned_data['username'],
            #     password=form.cleaned_data['password1'],
            # )
            login(request, user)
            return redirect('posts:post-list')

    # GET요청시 또는 POST로 전달된 데이터가 올바르지 않을 경우
    # signup.html에
    #   빈 Form또는 올바르지 않은 데이터에 대한 정보가
    #  포함된 Form을 전달해서 동적으로 form을 렌더링
    else:
        form = SignupForm()
    context['form'] = form
    return render(request, 'members/signup.html', context)