Advertisement
mattia89

Users.model

Feb 18th, 2025
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.74 KB | None | 0 0
  1. from django.db import models
  2. from django.contrib.auth.models import BaseUserManager, AbstractBaseUser
  3.  
  4.  
  5. class UserMangaer(BaseUserManager):
  6.     def create_user(self, email, password=None):
  7.         """
  8.        Crea e salva gli utenti inserendo email e password
  9.        """
  10.         if not email:
  11.             raise ValueError("Gli utenti devono avere un indirizzo email")
  12.  
  13.         user = self.model(email=self.normalize_email(email))
  14.         user.set_password(password)
  15.         user.save(using=self.db)
  16.         return user
  17.  
  18.     def create_superuser(self, email, password=None):
  19.         """
  20.        Crea e salva gli superutenti inserendo email e password
  21.        """
  22.         user = self.create_user(email, password=password)
  23.         user.is_admin = True
  24.         user.save(using=self.db)
  25.         return user
  26.  
  27.  
  28. class User(AbstractBaseUser):
  29.  
  30.     email = models.EmailField(
  31.         verbose_name="Indirizzo email",
  32.         max_length=255,
  33.         unique=True,
  34.     )
  35.     name = models.CharField(max_length=50, verbose_name="Nome")
  36.     surname = models.CharField(max_length=50, verbose_name="Cognome")
  37.  
  38.     is_active = models.BooleanField(default=True)
  39.     is_admin = models.BooleanField(default=False)
  40.     is_agent = models.BooleanField(default=False)
  41.     is_customer = models.BooleanField(default=False)
  42.  
  43.     objects = UserMangaer()
  44.  
  45.     USERNAME_FIELD = "email"
  46.     REQUIRED_FIELDS = []
  47.  
  48.     def __str__(self):
  49.         return self.email
  50.  
  51.     def has_perm(self, perm, obj=None):
  52.         "L'utente ha permessi specifici?"
  53.         return True
  54.  
  55.     def has_module_perms(self, app_label):
  56.         return True
  57.  
  58.     @property
  59.     def is_staff(self):
  60.         return self.is_admin
  61.  
  62.  
  63. class Agency(models.Model):
  64.     agency_name = models.CharField(max_length=50, verbose_name="Agenzia")
  65.     agency_address = models.CharField(max_length=99, verbose_name="Indirizzo")
  66.  
  67.  
  68. class Customer(models.Model):
  69.     user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
  70.     phone = models.CharField(max_length=13, verbose_name="Numero di cellulare")
  71.  
  72.     def __str__(self):
  73.         return self.user.name + " " + self.user.surname
  74.  
  75.  
  76. class Agent(models.Model):
  77.     user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
  78.     phone = models.CharField(max_length=13, verbose_name="Numero di cellulare")
  79.     # agency = models.ManyToManyField(Agency, verbose_name="Agenzia Immobiliare")
  80.     """
  81.    Pensare a chi registra l'agenzia immobiliare,
  82.    si potrebbe pensaere a pacchetti ad-hoc per agenzie
  83.    gratis fino a 5 dipendenti.
  84.    """
  85.     rea = models.CharField(max_length=6, verbose_name="Codice R.E.A.")
  86.  
  87.     def __str__(self):
  88.         return self.user.name + " " + self.user.surname
  89.  
  90.  
  91. """
  92.  
  93. """
  94.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement