diff --git a/main/models.py b/main/models.py index a1b6ff34e6b12a3fa005656523c408984b124d57..e06359f7ac3b8bcbbcac6252931993816150a3fb 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 3de629e13aab552afe0543318a979c967767e2e1..1a29ce22d0c883dbc154f0b2a4f4ece2879fd982 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: