Встречается на 1% собеседований по Python
Какие есть способы расширения модели пользователя в Django
В Django есть несколько способов расширения стандартной модели пользователя:
- Proxy-модель - если нужно только добавить методы, не меняя структуру БД:
python
from django.contrib.auth.models import User
class ProxyUser(User):
class Meta:
proxy = True
def get_full_name(self):
return f"{self.first_name} {self.last_name}"- OneToOne связь (профиль) - когда нужно добавить дополнительные поля:
python
from django.contrib.auth.models import User
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.TextField()
avatar = models.ImageField()
text
3. **Наследование от AbstractUser** - если нужно добавить поля в саму модель пользователя:
```python
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
phone = models.CharField(max_length=20)
birth_date = models.DateField(null=True)- Наследование от AbstractBaseUser - полная кастомизация, включая логин/пароль:
python
from django.contrib.auth.models import AbstractBaseUser
class CustomUser(AbstractBaseUser):
email = models.EmailField(unique=True)
# другие поля...Выбор зависит от требований: минимальные изменения - proxy, дополнительные поля - OneToOne, кастомизация аутентификации - AbstractBaseUser.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы