Repository URL to install this package:
|
Version:
0.0.1 ▾
|
dj-kaos-users
/
abstracts.py
|
|---|
from django.contrib.auth.models import AbstractUser
from django.db import models
from kaos_utils.behaviors import HasInitials
def user_avatar_path(instance, filename):
return f"users/{instance.username}/avatars/{filename}"
class AbstractKaosUser(HasInitials, AbstractUser):
take_initials_from = 'display_name'
class Meta:
abstract = True
avatar = models.ImageField(upload_to=user_avatar_path, blank=True)
@property
def name(self):
return f"{self.first_name} {self.last_name}".strip()
@property
def display_name(self):
return self.name if self.name.strip() else self.username
def does_belong_to_groups(self, *group_names):
return self.groups.filter(name__in=group_names).exists()
# TODO: Check OR and AND