Add initial implementations for forms and organization apps with serializers, factories, and admin configurations
Some checks failed
CI/CD Pipeline / Run Tests (push) Failing after 45s
CI/CD Pipeline / Code Quality Checks (push) Failing after 48s
CI/CD Pipeline / Build Docker Images (push) Has been skipped
CI/CD Pipeline / Push to Gitea Registry (push) Has been skipped
CI/CD Pipeline / Deploy to Server (push) Has been skipped
Some checks failed
CI/CD Pipeline / Run Tests (push) Failing after 45s
CI/CD Pipeline / Code Quality Checks (push) Failing after 48s
CI/CD Pipeline / Build Docker Images (push) Has been skipped
CI/CD Pipeline / Push to Gitea Registry (push) Has been skipped
CI/CD Pipeline / Deploy to Server (push) Has been skipped
This commit is contained in:
@@ -13,17 +13,17 @@ class User(AbstractUser):
|
||||
# Переопределяем группы и разрешения для избежания конфликта
|
||||
groups = models.ManyToManyField(
|
||||
"auth.Group",
|
||||
verbose_name=_("groups"),
|
||||
verbose_name="groups",
|
||||
blank=True,
|
||||
help_text=_(""),
|
||||
help_text="",
|
||||
related_name="custom_user_set",
|
||||
related_query_name="custom_user",
|
||||
)
|
||||
user_permissions = models.ManyToManyField(
|
||||
"auth.Permission",
|
||||
verbose_name=_("user permissions"),
|
||||
verbose_name="user permissions",
|
||||
blank=True,
|
||||
help_text=_("Specific permissions for this user."),
|
||||
help_text="Specific permissions for this user.",
|
||||
related_name="custom_user_set",
|
||||
related_query_name="custom_user",
|
||||
)
|
||||
@@ -50,8 +50,8 @@ class User(AbstractUser):
|
||||
|
||||
updated_at = models.DateTimeField(_("updated at"), auto_now=True)
|
||||
|
||||
USERNAME_FIELD = "email"
|
||||
REQUIRED_FIELDS = ["username"]
|
||||
USERNAME_FIELD = "username"
|
||||
REQUIRED_FIELDS = ["email"]
|
||||
|
||||
class Meta:
|
||||
db_table = "users"
|
||||
@@ -72,6 +72,8 @@ class Profile(models.Model):
|
||||
|
||||
first_name = models.CharField(_("first name"), max_length=50, blank=True, null=True)
|
||||
|
||||
mid_name = models.CharField(_("middle name"), max_length=50, blank=True, null=True)
|
||||
|
||||
last_name = models.CharField(_("last name"), max_length=50, blank=True, null=True)
|
||||
|
||||
bio = models.TextField(
|
||||
@@ -104,10 +106,6 @@ class Profile(models.Model):
|
||||
@property
|
||||
def full_name(self):
|
||||
"""Полное имя пользователя"""
|
||||
if self.first_name and self.last_name:
|
||||
return f"{self.first_name} {self.last_name}"
|
||||
elif self.first_name:
|
||||
return self.first_name
|
||||
elif self.last_name:
|
||||
return self.last_name
|
||||
return self.user.username
|
||||
parts = [self.first_name, self.mid_name, self.last_name]
|
||||
full_name = " ".join(part for part in parts if part)
|
||||
return full_name or self.user.username
|
||||
|
||||
Reference in New Issue
Block a user