Переписывание стандартной модели User при настройке класса User
Ребята! Я использую стандартную модель User из django.contrib.auth.models import User.
Я хочу настроить модель User, в частности добавить поле с ForeignKey. Например:
class User(models.Model):
this_users_team = models.ForeignKey(Team, null=True, on_delete=models.SET_NULL)
Если я напишу этот код, django перезапишет стандартную модель User моими данными в базах данных или это вызовет проблемы? Еще раз, в моем коде нет ни одного класса User. Но я использую User в других моделях, например:
id_user = models.ForeignKey(User, null=True, on_delete=models.SET_NULL)
Не рекомендуется настраивать предоставленную модель пользователя.
Если вам не нужна пользовательская модель пользователя (например, подкласс от AbstractUser - который является копией стандартной модели пользователя, разработанной для возможности расширения), то самый простой способ расширить пользователя - это создать другую модель с отношением один к одному к ней.
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="profile")
team = models.ForeignKey(Team, null=True, on_delete=models.SET_NULL)
С соответствующим именем можно обратиться к user.profile.team
Подробнее на эту тему в docs