В проекте стоит батарейка django-allauth, добавил в Юзера новое поле phone которое unique=True
Добавил поле в forms.py
from allauth.account.forms import SignupForm
from allauth.account.forms import forms
from .models import CustomUser
class MyCustomSignupForm(SignupForm):
"""Форма регистрации"""
def __init__(self, *args, **kwargs):
super(MyCustomSignupForm, self).__init__(*args, **kwargs)
self.fields['phone'] = forms.CharField(required=True)
self.fields['image'] = forms.FileField(required=False)
def save(self, request):
user = super(MyCustomSignupForm, self).save(request)
user.phone = self.cleaned_data['phone']
if self.cleaned_data['image']:
user.image = self.cleaned_data['image']
user.save()
return user
def clean_phone(self):
if CustomUser.objects.filter(phone=self.cleaned_data["phone"]).exists():
self.add_error("phone", forms.ValidationError("ERROR"))
return self.cleaned_data["phone"]
вывел поле в шаблон, при регистрации даже если такого номера нет, выдает Traceback UNIQUE constraint failed: users_customuser.phone
Хочу что бы он добавлял ошибку в forms.error и выводил на страницу