Esempio n. 1
0
def signup(request):

    # 기로그인 -> redirect
    if request.user.is_anonymous:
        pass
    elif request.user:
        # return HttpResponseRedirect('/portfolios/')
        return HttpResponseRedirect('/')

    template = 'registration/signup.html'
    signupForm = UserCreationForm()
    message = ""

    # form 작성 후 post 액션 시
    if request.method == "POST":
        signupForm = UserCreationForm(request.POST, request.FILES or None)
        if signupForm.is_valid():
            user = signupForm.save(commit=False)
            user.save()
            """Create a portfolio for this user"""
            Portfolio.make_portfolio(user)

            # 계정 활성화를 위한 이메일 인증
            current_site = get_current_site(request)

            mail_subject = render_to_string(
                'registration/activation_email_subject.txt')
            mail_message = render_to_string(
                'registration/activation_email.html', {
                    'user': user,
                    'domain': current_site.domain,
                    'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                    'token': account_activation_token.make_token(user),
                    'expiration_days': settings.ACCOUNT_ACTIVATION_DAYS,
                })
            to_email = signupForm.cleaned_data.get('email')

            email = EmailMessage(mail_subject, mail_message, to=[to_email])
            email.send()
            return HttpResponse(
                'Please confirm your email address to complete the registration'
            )
        else:
            message = "패스워드 미일치"

    elif request.method == "GET":
        pass

    context = {"signupForm": signupForm, "message": message}
    return render(request, template, context)