From dcc987c27503ebbb9524f5c94c74a6913794b629 Mon Sep 17 00:00:00 2001 From: anthef <anthonyef09@gmail.com> Date: Tue, 18 Mar 2025 11:16:22 +0700 Subject: [PATCH] fix integrity error --- main/models.py | 1 - main/views.py | 12 +++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/main/models.py b/main/models.py index a1b6ff3..e06359f 100644 --- a/main/models.py +++ b/main/models.py @@ -6,7 +6,6 @@ class CustomUser(AbstractUser): USERNAME_FIELD = "email" REQUIRED_FIELDS = ["name"] - email = models.EmailField(primary_key=True, unique=True) name = models.CharField(max_length=255, null=False) birth_date = models.DateField(null=False) diff --git a/main/views.py b/main/views.py index 3de629e..1a29ce2 100644 --- a/main/views.py +++ b/main/views.py @@ -1,3 +1,4 @@ +from django.db import IntegrityError from django.shortcuts import render, redirect from .forms import UserForm from .models import CustomUser @@ -7,8 +8,8 @@ def user_form_view(request): form = UserForm(request.POST) if form.is_valid(): user = CustomUser( - email=form.cleaned_data['email'], name=form.cleaned_data['name'], + email=form.cleaned_data['email'], birth_date=form.cleaned_data['birth_date'], phone_number=form.cleaned_data['phone_number'], blog_url=form.cleaned_data['blog_url'], @@ -18,8 +19,13 @@ def user_form_view(request): ) user.set_password(form.cleaned_data['password']) - user.save() - return render(request, 'user_result.html', {'data': form.cleaned_data}) + + try: + user.save() + return render(request, 'user_result.html', {'data': form.cleaned_data}) + except IntegrityError: + form.add_error('name', 'This email is already taken. Please choose another one.') + return render(request, 'user_form.html', {'form': form}) else: return render(request, 'user_form.html', {'form': form}) else: -- GitLab