【发布时间】:2015-09-30 20:32:15
【问题描述】:
自定义用户模型:
class User(AbstractBaseUser):
id = models.AutoField(primary_key=True)
username = models.CharField(max_length=30)
email = models.EmailField(unique=True,max_length=75)
test = models.CharField(max_length=20)
USERNAME_FIELD = 'email'
class Meta:
managed = False
db_table = 'auth_user'
在运行./manage.py migrate 时,我收到以下错误:
django.db.utils.IntegrityError: (1215, 'Cannot add foreign key constraint')
SHOW ENGINE INNODB STATUS 上 mysql 显示:
2015-07-12 19:29:25 133f4a000 Error in foreign key constraint of table edutraffic/#sql-55ea_17a:
FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`):
Cannot resolve table name close to:
(`id`)
所以,我删除了完整的数据库并重新创建它,仍然得到同样的错误。
settings.py文件:
AUTH_USER_MODEL = 'users.User'
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.staticfiles',
'django.contrib.sites',
'rest_framework',
'rest_framework.authtoken',
'rest_auth',
'allauth',
'allauth.account',
'rest_auth.registration',
'allauth.socialaccount',
'allauth.socialaccount.providers.facebook',
'allauth.socialaccount.providers.google',
'users',
)
【问题讨论】:
-
你有
managed = False,这意味着Django不会创建表。你确定它存在吗? -
愚蠢的错误..你的建议奏效了!!
标签: python django django-allauth django-users django-rest-auth