Где я храню личную информацию пользователей
Я создаю приложение, в котором пользователь регистрируется, указывая имя пользователя, электронную почту и пароль. Эти данные хранятся в одной таблице. Но затем пользователь вводит информацию о профиле, такую как фотография, биография, активность и т.д. Хранить ли эти данные в той же таблице, что и имя пользователя, электронную почту и пароль? Или мне создать другую таблицу, в которой я каким-то образом свяжу эти данные?
вы можете создать другую таблицу UserProfile с отношением OneToOne.
class UserProfile(models.Model):
user = models.OneToOne(User, unique=True)
location = models.CharField(max_length=140)
bio = models.CharField(max_length=140)
profile_picture = models.ImageField(upload_to='profile_pics', blank=True)
Затем в settings.py:
AUTH_PROFILE_MODULE = 'accounts.UserProfile'
Для загрузки вы можете использовать различные сервисы, такие как s3 и т.д.
Вы хотите расширить модель User для получения другой информации. Рекомендуемый подход для этого - создать другую модель, например Profile, и установить отношение OneToOne к модели User.
Вы можете создать новую таблицу с информацией, которую вы хотите хранить, но самое главное - связать новую таблицу с userid из user id
CREATE TABLE USER_INFORMATIONS(
Information_ID SERIAL PRIMARY KEY,
USER_ID (int or varchar acoording to the user table),
…
FOREIGN KEY (USER_ID) REFERENCES Users(Id)
);