Вход в систему с помощью номера телефона в django

Я получаю эту ошибку при внесении изменений

self.UserModel._default_manager.db_manager(database).create_superuser(**user_data) TypeError: create_superuser() missing 1 required positional argument: 'username'

модель

from django.db import models
from django.contrib.auth.models import AbstractUser


class Userperson(AbstractUser):

    gender_choice = [
        ('M', 'male'),
        ('F', "female")
    ]
    roles = [
        ('seller', 'Seller'),
        ('shopper', 'Shopper'), 
        ('serviceman', 'Serviceman')
    ]
    fullname = models.CharField(max_length=100, verbose_name="Fullname")
    phone = models.CharField(max_length=20,verbose_name="Phone",unique=True)
    image = models.ImageField(upload_to="userphoto/fullname", blank=True, null=True, verbose_name="userPhoto")
    phone_auth = models.BooleanField(default=False)
    gender = models.CharField(choices=gender_choice, blank=False, null=False, max_length=50)
    role = models.CharField(choices=roles, max_length=50)

    # ?
    USERNAME_FIELD = 'phone'
    #REQUIRED_FIELDS = ['fullname']

admin

from django.contrib import admin
from .models import Userperson

@admin.register(Userperson)
class personadmin(admin.ModelAdmin):
    list_display = ['fullname', 'phone', 'image', 'phone_auth']

Что я должен сделать, чтобы решить проблему?

Userperson является дочерним классом AbstractUser и наследует все методы и поля родительского класса.

Однако AbstractUser имеет поле username, которое является обязательным.

Вы должны установить username внутри словаря user_data при создании нового объекта пользователя.

А также

USERNAME_FIELD - Строка, описывающая имя поля в модели пользователя, которое используется в качестве уникального идентификатора

.

Вы уверены, что хотите определить уникальность пользователя по номеру телефона? Номер с кодом страны +987-1234-5678 и без него 0-1234-5678 (для внутреннего использования страны) будет двумя разными пользователями

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