, поэтому у меня есть пользовательская модель, позволяющая пользователям регистрироваться / входить в систему с использованием электронной почты вместо имени пользователя, проблема в том, что я беру электронное письмо, как оно введено в форму, и сохраняю, и моя модель назначает этому полю значение * 1001. * поэтому он чувствителен к регистру.
, поэтому вы видите проблему, если пользователь вводит верхний регистр электронной почты, он не может войти в систему, пока он не введет адрес электронной почты, аналогичный адресу электронной почты на странице регистрации.
my модель
class MyUser(AbstractUser):
username = None
email = models.EmailField(unique=True)
форма
class SignupForm(UserCreationForm):
class Meta(UserCreationForm.Meta):
model = MyUser
fields = ('email', 'password1', 'password2')
, и это представление для отправки электронных писем с подтверждением пользователям
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 Sentizer account.'
message = render_to_string('acc_active_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(
subject=mail_subject, body=message, to=[to_email], reply_to=[to_email],headers={'Content-Type': 'text/plain'},
)
email.send(fail_silently=False)
messages.info(request,"Please confirm your email to be able to login")
return HttpResponseRedirect(reverse_lazy('accounts:login'))
else:
form = SignupForm()
return render(request, 'accounts/signup.html', {'form': form})
и спасибо за вашу помощь.