models.py
from django.db import models
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin
#
from .managers import UserManager
class User(AbstractBaseUser, PermissionsMixin):
GENDER_CHOICES = (
('M', 'Masculino'),
('F', 'Femenino'),
('O', 'Otros'),
)
username = models.CharField(max_length=10, unique=True)
email = models.EmailField()
nombres = models.CharField(max_length=30, blank=True)
apellidos = models.CharField(max_length=30, blank=True)
genero = models.CharField(max_length=1, choices=GENDER_CHOICES, blank=True)
codregistro = models.CharField(max_length=6, blank=True)
#
is_staff = models.BooleanField(default=False)
is_active = models.BooleanField(default=False)
USERNAME_FIELD = 'username'
REQUIRED_FIELDS = ['email',]
objects = UserManager()
def get_short_name(self):
return self.username
def get_full_name(self):
return self.nombres + ' ' + self.apellidos
managers.py
from django.db import models
#
from django.contrib.auth.models import BaseUserManager
class UserManager(BaseUserManager, models.Manager):
def _create_user(self, username, email, password, is_staff, is_superuser, is_active, **extra_fields):
user = self.model(
username=username,
email=email,
is_staff=is_staff,
is_superuser=is_superuser,
is_active=is_active,
**extra_fields
)
user.set_password(password)
user.save(using=self.db)
return user
def create_user(self, username, email, password=None, **extra_fields):
return self._create_user(username, email, password, False, False, False, **extra_fields)
def create_superuser(self, username, email, password=None, **extra_fields):
return self._create_user(username, email, password, True, True, True, **extra_fields)
def cod_validation(self, id_user, cod_registro):
if self.filter(id=id_user, codregistro=cod_registro).exists():
return True
else:
return False
Última modificación: 27 Dec 2022 13:31
No hay comentarios aún
Sé el primero en comentar este artículo