Переключиться на пользовательскую модель, группы и разрешения Django

Я обновил свое приложение django 1.4 с профилями пользователей, чтобы использовать 1.5 Custom User Model.

#core/models.py

from django.contrib.auth.models import User, UserManager, BaseUserManager, AbstractUser

class MyUserManager(BaseUserManager):
    pass

class MyUser(AbstractUser):
    phone = models.CharField(blank = True, max_length = 18)
    completed_step = models.IntegerField(default = 0)
    objects = MyUserManager()

Я написал миграцию схемы для юга, и все данные были успешно импортированы.

В противном случае у меня проблема с auth_group и auth_permision. Django не может генерировать какие-либо дополнительные таблицы, но когда я хочу получить разрешения или группы, у меня есть этот SQL с JOIN для дополнительной таблицы:

 SELECT ...
      FROM "core_myuser"
      WHERE "core_myuser"."id" = 61 (8ms) Found 1 matching rows
 SELECT ...
      FROM "core_myuser"
      WHERE "core_myuser"."id" = 363 (1ms) Found 1 matching rows
 SELECT ...
      FROM "auth_group"
      INNER JOIN "core_myuser_groups" ON ("auth_group"."id" = "core_myuser_groups"."group_id")
      WHERE "core_myuser_groups"."myuser_id" = 363

С внутренней ошибкой сервера

http://cl.ly/image/0W1G3F2S3f3X

1 ответ

Вы не создали соответствующую таблицу в базе данных. Составьте таблицы перед переключением модели пользователя:

python manage.py syncdb
#or if you're use south
python manage.py schemamigration core --initial
python manage.py migrate core

Затем напишите собственный сценарий миграции для ваших пользовательских данных, иначе вы его потеряете.

Посмотрите это руководство и эту документацию, это поможет вам понять, что нужно делать.

Другие вопросы по тегам