Встречается на 1% собеседований по Python
Какие знаешь варианты определения модели пользователя в Django
В Django модель пользователя можно определить несколькими способами:
-
Использование встроенной модели
User
Стандартная модель изdjango.contrib.auth.models. Подходит для базовых случаев, но не расширяема.pythonfrom django.contrib.auth.models import User -
Расширение
AbstractUser
Позволяет добавить свои поля, сохраняя стандартные. Требует указанияAUTH_USER_MODELв settings.py.pythonfrom django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
phone = models.CharField(max_length=20)
text
3. **Расширение `AbstractBaseUser`**
Полная кастомизация, включая замену стандартных полей (например, email вместо username).
```python
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager
class MyUserManager(BaseUserManager):
def create_user(self, email, password=None):
# логика создания
pass
class MyUser(AbstractBaseUser):
email = models.EmailField(unique=True)
is_active = models.BooleanField(default=True)
objects = MyUserManager()
USERNAME_FIELD = 'email'- Связь OneToOne с
User
Дополнительная модель для хранения данных, если не нужно менять аутентификацию.pythonfrom django.contrib.auth.models import User class Profile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) bio = models.TextField()

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