创建CustomUser时出现Syncdb错误

时间:2015-04-14 22:51:18

标签: django django-models

问题在于我创建自定义用户:

class CustomUser(AbstractUser):
    mobile = models.CharField(max_length=16)
    address = models.CharField(max_length=100)

settings.py中写下:AUTH_USER_MODEL = 'login.CustomUser' 当我第一次运行manage.py syncdb时(当db不包含任何表时),它会抛出一个错误:django.db.utils.ProgrammingError: relation "auth_group" does not exist 但是当我已经存在表格的数据库时运行manage.py syncdb,那么它没关系,只需创建其他表格。当db不包含表时运行它有什么不对?

2 个答案:

答案 0 :(得分:1)

试试这个

  1. 在包含自定义用户模型的应用目录中创建一个migration目录。
  2. __init__.py目录中创建一个空的migration文件。
  3. 执行./manage.py makemigrations
  4. 执行./manage.py migrate
  5. 我认为当您使用自定义用户模型时,您需要创建迁移。此外,syncdb已被弃用,将在Django 1.9中删除,因此最好开始使用./manage.py migrate命令。

答案 1 :(得分:0)

如错误所示,您的CustomUser表与auth_group表有关系,因此除非创建或存在该表,否则无法在db中创建此新表。

当你说'数据库已经存在,那就没问题',你是手动创建表还是在你的INSTALLED_APPS中包含管理员应用程序?

因为如果您包含管理员应用,它会自动创建auth_group表,因此您不会看到该问题