我正在扩展Django中的抽象用户模型,它不会让我迁移抛出与外键相关的错误。
from django.db import models
from django.contrib.auth.models import AbstractUser
import uuid
#Database model for Users.
class User(AbstractUser):
'''
Abstract user model inherited containing all basic fields such as:
first and last name, username, email, password etc. Abstract User fields.
'''
user_id = models.UUIDField(
primary_key = True,
default = uuid.uuid4,
editable = False
)
is_owner = models.BooleanField(
default = False
)
class Meta:
db_table = 'Users'
def __str__(self):
self.constructLabel(
self.first_name,
self.last_name,
self.user_id
)
错误: django.db.utils.IntegrityError:(1215,'无法添加外键约束')
从数据库错误是:
2017-04-09 20:33:07 0x7f3440171700 Error in foreign key constraint of table shipapp/#sql-3c9_33:
FOREIGN KEY (`user_id`) REFERENCES `users_user` (`user_id`):
Cannot resolve table name close to:
(`user_id`)
任何遇到这种情况的人都可以帮助我吗?自Django 1.8.5发布以来,我一直没有接触过。 :(
答案 0 :(得分:0)
我至少解决了我的问题,虽然这不是推荐的解决方法,尽管解决方案可能特定于我的问题。当我刚开始制作模型时,我可以重新初始化整个项目并复制模型并再次进行迁移。 问题是我认为在创建的初始迁移文件中以及在重复删除和重新创建文件之后,错误仍然来自这些初始文件。
从这里学到的教训以及我做错的事情是:
错误:
我应该做些什么: