问题在于我创建自定义用户:
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不包含表时运行它有什么不对?
答案 0 :(得分:1)
试试这个
migration
目录。__init__.py
目录中创建一个空的migration
文件。./manage.py makemigrations
。./manage.py migrate
。我认为当您使用自定义用户模型时,您需要创建迁移。此外,syncdb
已被弃用,将在Django 1.9中删除,因此最好开始使用./manage.py migrate
命令。
答案 1 :(得分:0)
如错误所示,您的CustomUser表与auth_group表有关系,因此除非创建或存在该表,否则无法在db中创建此新表。
当你说'数据库已经存在,那就没问题',你是手动创建表还是在你的INSTALLED_APPS中包含管理员应用程序?
因为如果您包含管理员应用,它会自动创建auth_group表,因此您不会看到该问题