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 AbstractUser
- from django.core.exceptions import ObjectDoesNotExist, ValidationError
- from django.db import models
- from django.utils.translation import gettext_lazy as _
- from Progetto_web import settings
- # type of user
- # manager -> can insert sport facilities
- # player -> can book sport facilities
- # Create your models here.
- class AccountUser(AbstractUser):
- # email = models.EmailField(_('email address'), unique=True)
- AbstractUser._meta.get_field('email')._unique = True
- terms_of_service_acceptance = models.BooleanField(default=False)
- terms_of_service_acceptance_datetime = models.DateTimeField(auto_now_add=True)
- is_club = models.BooleanField(default=False)
- REQUIRED_FIELDS = ['username']
- USERNAME_FIELD = 'email'
- class Meta:
- verbose_name = _('Account')
- verbose_name_plural = _('Accounts')
- @property
- def has_profile(self):
- try:
- assert self.profile
- return True
- except ObjectDoesNotExist:
- return False
- def clean(self):
- if not self.terms_of_service_acceptance:
- raise ValidationError(_("You must accept the terms of service"))
- class Club(models.Model):
- first_name = models.CharField(max_length=50)
- middle_name = models.CharField(max_length=50, null=True, blank=True)
- last_name = models.CharField(max_length=50)
- club_name = models.CharField(max_length=50)
- city = models.CharField(max_length=50)
- user = models.OneToOneField(
- settings.AUTH_USER_MODEL,
- on_delete=models.CASCADE,
- related_name='club'
- )
- class Meta:
- verbose_name_plural = 'Clubs'
- ordering = ['-club_name', 'city']
- def save(self, *args, **kwargs):
- super().save(*args, **kwargs)
- class Player(models.Model):
- first_name = models.CharField(max_length=50)
- middle_name = models.CharField(max_length=50, null=True, blank=True)
- last_name = models.CharField(max_length=50)
- user = models.OneToOneField(
- settings.AUTH_USER_MODEL,
- on_delete=models.CASCADE,
- related_name='Players'
- )
- class Meta:
- verbose_name_plural = 'People'
- ordering = ['-last_name', 'first_name']
- def save(self, *args, **kwargs):
- super().save(*args, **kwargs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement