【问题标题】:django.db.utils.IntegrityError in Custom UserModel自定义用户模型中的 django.db.utils.IntegrityError
【发布时间】: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


【解决方案1】:

您已将managed 设置为False,这意味着Django 不会创建表。要么删除该行,要么手动创建表。

【讨论】:

    猜你喜欢
    • 2014-02-07
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    • 2013-03-21
    • 1970-01-01
    • 2012-06-28
    相关资源
    最近更新 更多