Files
Logic/Modules/Backend/account/models.py
T
2026-05-11 03:27:21 +03:30

38 lines
917 B
Python

from django.contrib.auth.models import AbstractUser
from django.contrib.auth.models import UserManager as BaseUserManager
from django.db.models import Q
from django.db import models
class CustomUserManager(BaseUserManager):
"""Manager that allows lookup by username, email, or phone_number."""
def get_by_natural_key(self, username):
return self.get(
Q(username=username) | Q(email=username) | Q(phone_number=username)
)
class User(AbstractUser):
phone_number = models.CharField(
max_length=32,
unique=True,
db_index=True,
)
email = models.EmailField(
"email address",
unique=True,
db_index=True,
)
USERNAME_FIELD = "username"
REQUIRED_FIELDS = ["email", "phone_number"]
objects = CustomUserManager()
class Meta:
db_table = "users"
def __str__(self):
return self.username