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:
Daniel Cortes
2020-05-22 00:05:27 -04:00
commit 3568abfbc7
44 changed files with 1841 additions and 0 deletions

78
users/models.py Normal file
View 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}'