Встречается на собеседованиях • сегодня

Как добавить поля в модель пользователя

В Django можно расширить стандартную модель пользователя двумя основными способами:

  1. OneToOne связь с Profile моделью (рекомендуется для большинстве случаев):
python
from django.contrib.auth.models import User
from django.db import models

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    bio = models.TextField(max_length=500, blank=True)
    location = models.CharField(max_length=30, blank=True)
    birth_date = models.DateField(null=True, blank=True)
  1. Создание кастомной модели пользователя (наследование от AbstractUser):
python
from django.contrib.auth.models import AbstractUser
from django.db import models

class CustomUser(AbstractUser):
    bio = models.TextField(max_length=500, blank=True)
    phone = models.CharField(max_length=20, blank=True)
    
# В settings.py добавить:
AUTH_USER_MODEL = 'myapp.CustomUser'

Первый способ проще и не требует изменения существующей логики авторизации. Второй способ дает больше контроля, но требует миграций и изменения настроек проекта.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы