Ошибка 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 :)

Просто пример :)

Вернуться на верх