gpt4 book ai didi

mysql - Django 中的外键约束错误

转载 作者:行者123 更新时间:2023-11-29 19:08:22 24 4
gpt4 key购买 nike

我正在 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 发布以来我就失去了联系。 :(

最佳答案

我至少解决了我的问题,尽管这不是解决这个问题的推荐方法,尽管该解决方案可能特定于我的问题。由于我刚刚开始制作模型,我有能力重新初始化整个项目并复制模型并再次进行迁移。问题是我认为在创建的初始迁移文件中,在反复删除和重新创建文件后,这些初始文件仍然会出现错误。

从中吸取的教训以及我做错的事情是:

错误:

  1. 我根据同时制作的 E-R 图制作了多个模型。
  2. 当我制作所有这些时,我没有迁移。
  3. 同时建立所有关系。
  4. 尝试立即迁移它们,但出现了竞争条件种类。在制作模型时尝试了每种关系。我读在某个地方,一个人引用了“你不能一边吃糕点一边仍然保留在自己身边。”

我应该做什么:

  1. 将模型一一制作。
  2. 迁移模型,使其保持原子性,即:没有关系它们之间。仅保留非关系字段。
  3. 迁移模型后,写出模型之间的关系模型。
  4. 然后迁移模型及其之间的关系。

关于mysql - Django 中的外键约束错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43308466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com