Какую бы связь использовал для расширения стандартного юзера
Для расширения стандартной модели пользователя (`User`) обычно используется связь "один к одному" (OneToOne). Это позволяет создать дополнительную модель, которая будет связана с моделью пользователя и содержать дополнительные поля и методы, необходимые вашему приложению. Для этого вы можете создать новую модель, которая будет содержать информацию, которую вы хотите добавить к стандартной модели пользователя, и затем создать связь "один к одному" между новой и моделью пользователя.
Пример:
from django.contrib.auth.models import User
from django.db import models
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
# Дополнительные поля для расширения модели пользователя
date_of_birth = models.DateField()
avatar = models.ImageField(upload_to='avatars/')
# Дополнительные методы и свойства
def get_full_name(self):
return f'{self.user.first_name} {self.user.last_name}'
def __str__(self):
return self.user.username
В этом примере `UserProfile` - это модель, которая расширяет стандартную модель пользователя (`User`) с дополнительными полями `date_of_birth` и `avatar`. Связь `OneToOneField` указывает на то, что каждый объект `UserProfile` связан с одним и только одним объектом `User`.
Feb. 18, 2024, easyoffer