Initialize Django project #8

Merged
rixx merged 34 commits from 1-initialize-project into main 2025-03-16 09:09:26 +00:00
3 changed files with 41 additions and 0 deletions
Showing only changes of commit 6702de359b - Show all commits

View file

@ -14,6 +14,7 @@ from .service import (
ServiceOfferingPlan,
ServiceProvider,
)
from .user import User
__all__ = [
"BillingEntity",
@ -28,4 +29,5 @@ __all__ = [
"ServiceOffering",
"ServiceOfferingPlan",
"ServiceProvider",
"User",
]

View file

@ -0,0 +1,38 @@
from django.contrib.auth.models import AbstractBaseUser
from django.db import models
from django.utils.translation import gettext_lazy as _
class User(AbstractBaseUser):
"""The Django model provides a password and last_login field."""
email = models.EmailField(unique=True, verbose_name=_("Email address"))
first_name = models.CharField(
max_length=30, blank=True, verbose_name=_("First name")
)
last_name = models.CharField(max_length=30, blank=True, verbose_name=_("Last name"))
company = models.CharField(max_length=100, blank=True, verbose_name=_("Company"))
is_staff = models.BooleanField(
default=False,
verbose_name=_("Is staff"),
help_text=_("Staff users can log into this admin site."),
)
is_superuser = models.BooleanField(
default=False,
verbose_name=_("Is superuser"),
help_text=_(
"Superusers have all permissions without explicitly assigning them. Use with caution."
),
)
EMAIL_FIELD = "email"
USERNAME_FIELD = "email"
def __str__(self):
if self.first_name and self.last_name:
return f"{self.first_name} {self.last_name}"
return self.email
def normalize_username(self, username):
return super().normalize_username(username).strip().lower()

View file

@ -107,6 +107,7 @@ TEMPLATES = [
},
]
AUTH_USER_MODEL = "core.User"
AUTH_PASSWORD_VALIDATORS = [
{
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator"