Проблема создания пользовательского профиля в Django - PullRequest
1 голос
/ 02 марта 2011

С учетом кода:

from django.contrib.auth.models import User

class UserProfile(models.Model):
    # project userprofile, also set as AUTH_PROFILE_MODULE
    user = models.ForeignKey(User, unique=True)

class AppUserProfile(UserProfile):
    # some app specific extension

и тест:

user = User.objects.create()
profile = UserProfile.objects.get_or_create(user=user)
AppUserProfile.objects.create(user=user)

в последней строке происходит сбой, говоря:

IntegrityError: column user_id is not unique

Я подозреваю, что Django использует одну и ту же таблицу для отношений user-userprofile и user-anotheruserprofile, определенных ForeignKey.

Как я могу решить эту проблему?

1 Ответ

1 голос
/ 02 марта 2011

Причиной ошибки является тот факт, что вы создаете два UserProfile-ов с одинаковым user_id.Вы используете «наследование нескольких таблиц», поэтому вам нужно только вызвать AppUserProfile.objects.get_or_create (user = user), и он будет работать, как ожидается.это очень хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...