Встречается на 1% собеседований по Python
Как сделать кастомную авторизацию в Django
Для создания кастомной аутентификации в Django можно использовать AbstractBaseUser или AbstractUser.
- Настройка модели пользователя:
python
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager class CustomUserManager(BaseUserManager): def create_user(self, email, password=None, **extra_fields): if not email: raise ValueError('Email is required') user = self.model(email=self.normalize_email(email), **extra_fields) user.set_password(password) user.save(using=self._db) return user
class CustomUser(AbstractBaseUser):
email = models.EmailField(unique=True)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
text
USERNAME_FIELD = 'email'
objects = CustomUserManager()text
2. **Обновление `settings.py`**:
```python
AUTH_USER_MODEL = 'myapp.CustomUser'-
Кастомный бэкенд аутентификации (если нужно):
pythonfrom django.contrib.auth.backends import BaseBackend from .models import CustomUser class CustomAuthBackend(BaseBackend): def authenticate(self, request, email=None, password=None): try: user = CustomUser.objects.get(email=email) if user.check_password(password): return user except CustomUser.DoesNotExist: return None -
Добавьте бэкенд в
AUTHENTICATION_BACKENDS:pythonAUTHENTICATION_BACKENDS = ['myapp.backends.CustomAuthBackend']
Также можно переопределить формы (UserCreationForm, UserChangeForm) и использовать их в админке.

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