Вход в систему с помощью номера телефона в 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 (для внутреннего использования страны) будет двумя разными пользователями