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)
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)
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)
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)
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)
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)
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)
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})
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)