Djangoの新規登録のメール認証時に認証ボタンが押されたタイミングでデータベースに登録できるようにしたい

実現したいこと

新規登録もメール認証をした後にデータベースに情報を登録できるようにしたい

発生している問題・分からないこと

現在新規登録はメール認証機能があるのですがメール認証を押す前にデータベースに登録されてしまっています。ですがこれだともしメール認証をしないでやめた時にすでにデータベースにはユーザーネームがあり、もう1度同じユーザーネームで登録しようとすると2度は使えないので登録ができなくなってしまいます。

該当のソースコード

views.py

1class SignupView(CreateView): 2 form_class = CustomUserCreationForm 3 template_name = "account/signup.html" 4 success_url = reverse_lazy('accounts:signup_success') 5 6 def form_valid(self, form): 7 # フォームが有効な場合の処理を実行 8 self.object = form.save() 9 send_email_confirmation(self.request, self.object) 10 return super().form_valid(form) 11 12class SignUpSuccessView(TemplateView): 13 template_name = "account/signup_success.html" 14 15def user_registration(request): 16 if request.method == 'POST': 17 form = CustomUserCreationForm(request.POST) 18 if form.is_valid(): 19 user = form.save() 20 login(request, user) # ユーザーを登録と同時にログインさせる 21 return redirect('accounts:signup_success') 22 else: 23 form = CustomUserCreationForm() 24 25 return render(request, 'registration_form.html', {'form': form})

試したこと・調べたこと

上記の詳細・結果

維持保存できるコードなどを試したがエラーになって実現ができませんでした。

補足

何が必要なのか明確ではないので必要な情報があれば教えていただきたいです。

コメントを投稿

0 コメント