Ошибка Django: IntegrityError: UNIQUE constraint failed: auth_user.username
Мой файл views.py имеет следующий вид:
from django.shortcuts import redirect, render
from django.contrib.auth.models import User
from django.contrib import messages
def index(request):
return render(request, "index.html")
def signup(request):
if request.method == "POST":
username = request.POST['uname']
first_name = request.POST['fname']
last_name = request.POST['lname']
email = request.POST['email']
pass1 = request.POST['pass1']
pass2 = request.POST['pass2']
myuser = User.objects.create_user(username=username, password=pass1, email=email)
myuser.first_name = first_name
myuser.last_name = last_name
myuser.save()
messages.success(request, "Your account has been created successfully...")
# function Name = 'login'
return redirect('login')
return render(request, "signup.html")
def login(request):
return render(request, "login.html")
def signout(request):
pass
Ошибка заключается в следующем: UNIQUE constraint failed: auth_user.username Так в чем же причина? И как это можно решить?
Это происходит, если пользователь с таким именем пользователя существует, есть много способов поймать ошибку и выдать ее пользователю, один из них
from django.db import IntegrityError
try:
""" create user"""
except IntegrityError as e:
if 'unique constraint' in e.message: # or e.args[0] from Django 1.10
# do something, like a response - 400 User already created :)
Просто пример :)