Я создал пользовательские формы для входа и регистрации в Django, используя HTML / CSS, а не Django's form.as_p
. У меня есть следующий код в views.py:
def login_user(request):
logout(request)
if request.POST:
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
return redirect('/mainpage/')
else:
login_message = "Your username or password is incorrect."
return render(request, 'index.html', {'login_message': login_message})
return render(request, 'index.html')
def sign_up(request):
if request.POST:
username = request.POST['username']
email = request.POST['email']
password = request.POST['password']
password_confirm = request.POST['password-confirm']
if(valid_form(username, email, password, password_confirm)):
#create the new user
user = CustomUser(name=username, email=email, password=password)
user.save()
user = authenticate(username=username, password=password)
login(request, user)
return redirect('/mainpage/')
else:
message = "There was a problem."
return render(request, 'index.html', {'message': message})
return render(request, 'index.html')
У меня есть следующая модель для CustomUser в models.py:
from django.contrib.auth.models import AbstractUser
from django.db import models
class CustomUser(AbstractUser):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=200, null=True)
email = models.EmailField(max_length=70, null=True)
password = models.CharField(max_length=50, null=True)
Мой код работает для регистрации, и яМожно создать нового пользователя после ввода имени пользователя, адреса электронной почты и пароля. Однако, когда я пытаюсь зарегистрироваться снова и создать другого пользователя, я получаю следующую ошибку:
Exception Type: IntegrityError
Exception Value: UNIQUE constraint failed: Reviews_customuser.username
Я не уверен, почему я получаю эту ошибку или как ее устранить. Любые идеи приветствуются.