Невозможно назначить - должен быть экземпляр "UserProfile" - PullRequest
0 голосов
/ 21 мая 2010

Я определил class UserProfile, который принимает значение по умолчанию user в качестве внешнего ключа. Теперь другой class A имеет внешний ключ для UserProfile.
Так что для сохранения любого экземпляра в классе A, как я могу дать ему объект userprofile.

Кроме того, означает ли class UserProfile, что class user все еще используется, а class UserProfile - это просто какая-то другая таблица?
Мне нужно это знать, так как я должен позаботиться о создании профиля пользователя, поэтому я должен знать, что и где хранится?

- Confused

Ответы [ 2 ]

1 голос
/ 21 мая 2010

Так что для сохранения любого экземпляра в классе A, как я могу дать ему профиль пользователя объект.

  1. Создайте приложение с моделью, которая имеет models.OneToOneField(User) или models.ForeignKey(User, unique=True).
  2. Сообщите вашему проекту о своем профиле пользователя, указав на него в файле settings.py AUTH_PROFILE_MODULE = 'myapp.UserProfile'.
  3. Прочитайте документацию .

Также делает создание класса UserProfile означает, что пользователь класса все еще используется и Класс UserProfile это просто какой-то другой таблица

Да, в вашей базе данных будет таблица auth_user и user_profile. Это связано с тем, что использование UserProfiles не означает, что все пользователи должны иметь профили. Только дополнительные поля, определенные в модели UserProfile, будут в таблице user_profile.

Мне нужно это знать, так как я должен принять забота о создании профиля пользователя, так Я должен знать, что хранится где?

Джеймс Беннетт создал два замечательных приложения, которые после нескольких часов внимательного прочтения будут очень полезны, особенно когда дело касается регистрации пользователей. Посмотрите на django-регистрацию и django-профили .

1 голос
/ 21 мая 2010

Я предполагаю, что ваша модель UserProfile предназначена для хранения дополнительной информации о ваших пользователях. Если да, то есть документация о наилучшем подходе для этого, которая вкратце:

  • задайте модель с полями для дополнительной информации, которую вы хотите сохранить, или дополнительные методы, которые вы хотели бы иметь в наличии, а также добавьте OneToOneField из вашей модели в модель пользователя. Это обеспечит создание только одного экземпляра вашей модели для каждого пользователя.
  • Установите AUTH_PROFILE_MODULE на myapp.MyModel, где myapp - приложение, содержащее модель MyModel, которое вы хотите использовать для хранения дополнительной информации о ваших пользователях.
...