import uuid from django.contrib.auth.models import AbstractUser from django.db import models class User(AbstractUser): color = models.CharField( max_length=7, default='#0000ff', ) class Invitation(models.Model): token = models.UUIDField( default=uuid.uuid4, unique=True, editable=False, ) created_by = models.ForeignKey( User, on_delete=models.CASCADE, related_name='created_invitations', ) created_at = models.DateTimeField(auto_now_add=True) expires_at = models.DateTimeField() used_at = models.DateTimeField( null=True, blank=True, ) @property def is_valid(self): from django.utils import timezone return ( self.used_at is None and self.expires_at > timezone.now() )