Commit inicial
Habia trabajado un buen poco pero como vi que tenia que separar los repositorios perdi bastante la historia :c
This commit is contained in:
78
users/models.py
Normal file
78
users/models.py
Normal file
@@ -0,0 +1,78 @@
|
||||
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
|
||||
from django.contrib.auth.validators import UnicodeUsernameValidator
|
||||
from django.db import models
|
||||
|
||||
|
||||
class UserManager(BaseUserManager):
|
||||
def create_user(self, username, email, password):
|
||||
if not username:
|
||||
raise ValueError('El usuario debe tener un nombre de usuario')
|
||||
if not email:
|
||||
raise ValueError('El usuario debe tener un email')
|
||||
if not password:
|
||||
raise ValueError('El usuario debe tener una contraseña')
|
||||
|
||||
user = self.model(
|
||||
username=self.model.normalize_username(username),
|
||||
email=self.normalize_email(email),
|
||||
)
|
||||
user.set_password(password)
|
||||
user.save(using=self._db)
|
||||
return user
|
||||
|
||||
def create_superuser(self, username, email, password=None):
|
||||
user = self.create_user(
|
||||
username=username,
|
||||
email=email,
|
||||
password=password,
|
||||
)
|
||||
user.is_admin = True
|
||||
user.save(using=self._db)
|
||||
return user
|
||||
|
||||
|
||||
class User(AbstractBaseUser):
|
||||
class Meta:
|
||||
verbose_name = 'usuario'
|
||||
verbose_name_plural = 'usuarios'
|
||||
|
||||
object = UserManager()
|
||||
|
||||
username_validator = UnicodeUsernameValidator()
|
||||
|
||||
username = models.CharField('nombre de usuario', max_length=40, validators=[username_validator], unique=True)
|
||||
email = models.EmailField('correo')
|
||||
is_active = models.BooleanField('esta activo', default=True)
|
||||
is_admin = models.BooleanField('es administrador', default=False)
|
||||
password = models.CharField('contraseña', max_length=128)
|
||||
|
||||
USERNAME_FIELD = 'username'
|
||||
EMAIL_FIELD = 'email'
|
||||
|
||||
REQUIRED_FIELDS = ['email']
|
||||
|
||||
def has_perm(self, *args, **kwargs):
|
||||
return True
|
||||
|
||||
def has_module_perms(self, *args, **kwargs):
|
||||
return True
|
||||
|
||||
@property
|
||||
def is_staff(self):
|
||||
return self.is_admin
|
||||
|
||||
|
||||
class SocialNetworks(models.Model):
|
||||
class Meta:
|
||||
verbose_name = 'Redes Sociales'
|
||||
verbose_name_plural = 'Redes Sociales'
|
||||
|
||||
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
|
||||
twitter = models.CharField('twitter', max_length=255, blank=True)
|
||||
facebook = models.CharField('facebook', max_length=255, blank=True)
|
||||
instagram = models.CharField('instagram', max_length=255, blank=True)
|
||||
youtube = models.CharField('youtube', max_length=255, blank=True)
|
||||
twitch = models.CharField('twitch', max_length=255, blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self._meta.verbose_name_plural} de {self.user.username}'
|
||||
Reference in New Issue
Block a user