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

4

我将使用者档案的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()

我为south编写了模式迁移,所有数据都已成功导入。

另外,我遇到了auth_group和auth_permision的问题。 Django无法生成任何额外的表,但当我想获取权限或组时,会出现JOIN到额外表的SQL:

 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

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

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

然后编写自定义迁移脚本以保存用户数据,否则您将失去它。

查看此手册此文档,它将帮助您了解应该完成的工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接