diff options
Diffstat (limited to 'alphabetlearning/users/models.py')
-rw-r--r-- | alphabetlearning/users/models.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/alphabetlearning/users/models.py b/alphabetlearning/users/models.py new file mode 100644 index 0000000..f536bc7 --- /dev/null +++ b/alphabetlearning/users/models.py @@ -0,0 +1,38 @@ +from typing import ClassVar + +from django.contrib.auth.models import AbstractUser +from django.db.models import CharField +from django.db.models import EmailField +from django.urls import reverse +from django.utils.translation import gettext_lazy as _ + +from .managers import UserManager + + +class User(AbstractUser): + """ + Default custom user model for pyblackbird-cc. + If adding fields that need to be filled at user signup, + check forms.SignupForm and forms.SocialSignupForms accordingly. + """ + + # First and last name do not cover name patterns around the globe + name = CharField(_("Name of User"), blank=True, max_length=255) + first_name = None # type: ignore[assignment] + last_name = None # type: ignore[assignment] + email = EmailField(_("email address"), unique=True) + username = None # type: ignore[assignment] + + USERNAME_FIELD = "email" + REQUIRED_FIELDS = [] + + objects: ClassVar[UserManager] = UserManager() + + def get_absolute_url(self) -> str: + """Get URL for user's detail view. + + Returns: + str: URL for user detail. + + """ + return reverse("users:detail", kwargs={"pk": self.id}) |