Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.db import models
- from django.contrib.auth.models import BaseUserManager, AbstractBaseUser
- class UserMangaer(BaseUserManager):
- def create_user(self, email, password=None):
- """
- Crea e salva gli utenti inserendo email e password
- """
- if not email:
- raise ValueError("Gli utenti devono avere un indirizzo email")
- user = self.model(email=self.normalize_email(email))
- user.set_password(password)
- user.save(using=self.db)
- return user
- def create_superuser(self, email, password=None):
- """
- Crea e salva gli superutenti inserendo email e password
- """
- user = self.create_user(email, password=password)
- user.is_admin = True
- user.save(using=self.db)
- return user
- class User(AbstractBaseUser):
- email = models.EmailField(
- verbose_name="Indirizzo email",
- max_length=255,
- unique=True,
- )
- name = models.CharField(max_length=50, verbose_name="Nome")
- surname = models.CharField(max_length=50, verbose_name="Cognome")
- is_active = models.BooleanField(default=True)
- is_admin = models.BooleanField(default=False)
- is_agent = models.BooleanField(default=False)
- is_customer = models.BooleanField(default=False)
- objects = UserMangaer()
- USERNAME_FIELD = "email"
- REQUIRED_FIELDS = []
- def __str__(self):
- return self.email
- def has_perm(self, perm, obj=None):
- "L'utente ha permessi specifici?"
- return True
- def has_module_perms(self, app_label):
- return True
- @property
- def is_staff(self):
- return self.is_admin
- class Agency(models.Model):
- agency_name = models.CharField(max_length=50, verbose_name="Agenzia")
- agency_address = models.CharField(max_length=99, verbose_name="Indirizzo")
- class Customer(models.Model):
- user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
- phone = models.CharField(max_length=13, verbose_name="Numero di cellulare")
- def __str__(self):
- return self.user.name + " " + self.user.surname
- class Agent(models.Model):
- user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
- phone = models.CharField(max_length=13, verbose_name="Numero di cellulare")
- # agency = models.ManyToManyField(Agency, verbose_name="Agenzia Immobiliare")
- """
- Pensare a chi registra l'agenzia immobiliare,
- si potrebbe pensaere a pacchetti ad-hoc per agenzie
- gratis fino a 5 dipendenti.
- """
- rea = models.CharField(max_length=6, verbose_name="Codice R.E.A.")
- def __str__(self):
- return self.user.name + " " + self.user.surname
- """
- """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement