切换到Django自定义用户模型,组和权限

时间:2013-07-24 08:44:37

标签: python database django django-south django-1.5

我使用用户配置文件更新了我的django 1.4应用程序,以使用1.5自定义用户模型。

#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 个答案:

答案 0 :(得分:0)

您尚未在数据库中创建适当的表。 在切换用户模型之前创建表:

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

然后为您的用户数据编写自定义迁移脚本,否则您将丢失它。

查看this manual和此documentation,它会帮助您了解应该做些什么。