Ограничение UNIQUE не сработало: customuser.username

Я пытаюсь разобраться в drf. Я установил все конечные точки, и они работают, единственное, что не работает, это когда я хочу отправить что-то в базу данных, первый пост проходит нормально, а второй показывает ошибку целостности, я застрял уже несколько дней, хаха. Может кто-нибудь помочь мне понять, что я упускаю

models.py :

class CustomUser(AbstractUser):
    name = models.CharField(max_length=30)
    email  = models.EmailField(default ="no email")
    first_name = models.CharField(max_length = 25 ,default = 'No name')
    last_name = models.CharField(max_length = 25, default = 'No surname')
    password = models.CharField(max_length = 25,default = "no password")
    
    
    
    def __str__(self):
        return self.name

views.py

class CustomModelViewSet(ModelViewSet):
    serializer_class = UserSerializer
    queryset = CustomUser.objects.all()
    

@api_view(['GET', 'POST'])
def user_list(request,format =None):
    #get all users
    #serialize them
    #return json
    if request.method == 'GET':
        allUser = CustomUser.objects.all()
        serializer = UserSerializer(allUser, many=True)
        return Response(serializer.data)
    
    elif request.method =='POST':
        serializer = UserSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)

@api_view(['GET','PUT','DELETE'])       
def user_detail(request,id,format =None):
    try:
        user = CustomUser.objects.get(pk=id)
    except CustomUser.DoesNotExist:
        return Response(status.HTTP_404_NOT_FOUND)
    if request.method == 'GET':
        serializer = UserSerializer(user)
        return Response(serializer.data)
    elif request.method == 'PUT':
        serializer = UserSerializer(user, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    elif request.method == 'DELETE':
        user.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)

serializers.py

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = CustomUser
        fields = ['id','email','password','first_name','last_name']

Когда вы наследуете от класса AbstractUser, вы наследуете и свойства/поля класса, такие как email, имя пользователя и т.д.

ссылка

username является обязательным и по умолчанию принимает значение Unique.

Чтобы изменить его, необходимо установить username на None:

username = None
class CustomUser(AbstractUser):
    name = models.CharField(max_length=30)
    email  = models.EmailField(default ="no email")
    first_name = models.CharField(max_length = 25 ,default = 'No name')
    last_name = models.CharField(max_length = 25, default = 'No surname')
    password = models.CharField(max_length = 25,default = "no password")
    username = None

Затем выполните makemigrations и migrate.

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