Переключиться на пользовательскую модель, группы и разрешения 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
С внутренней ошибкой сервера
1 ответ
Вы не создали соответствующую таблицу в базе данных. Составьте таблицы перед переключением модели пользователя:
python manage.py syncdb
#or if you're use south
python manage.py schemamigration core --initial
python manage.py migrate core
Затем напишите собственный сценарий миграции для ваших пользовательских данных, иначе вы его потеряете.
Посмотрите это руководство и эту документацию, это поможет вам понять, что нужно делать.