- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
创建第一个项目模型并用一些数据填充它,然后尝试通过外键向它添加配置文件模型(那里没有数据),同时尝试进行迁移以将配置文件模型与项目模型链接起来时出现错误:
django.db.utils.IntegrityError:主键为“1”的表“main_page_projects”中的行具有无效外键:main_page_projects.profile_id 包含值“1”,该值在main_page_profile.id。
在 makemigration 期间选择了值 nr 1:
如果不指定默认值,就不可能向项目添加不可为 null 的字段“配置文件”。这是因为数据库需要一些东西来填充现有的行。请选择一个修复:1) 现在提供一次性默认值(将在所有现有行上设置此列的空值)2) 退出并在 models.py 中手动定义一个默认值。
我四处搜索并查看了 stackoverflow,可能如果我删除了迁移文件和 sqlite3 数据库,那么迁移应该可以工作,但我想知道如何在不删除迁移文件和数据库的情况下使其工作。如果填充配置文件,则迁移也有效,但为什么它不会创建具有默认值的链接?
我应该做些什么不同的事情或哪里出错了?
使用 Django 4.0.2 和 Python 3.9.5
模型.py
from django.db import models
class Profile(models.Model):
full_name = models.CharField(max_length=50, verbose_name='Name')
email = models.EmailField(unique=True, verbose_name='Email')
bio = models.TextField(max_length=500, verbose_name='Description')
profile_picture = models.ImageField(upload_to='profile_picture')
def __str__(self):
return self.name
class Meta:
verbose_name = 'Profile'
verbose_name_plural = 'Profiles'
class Projects(models.Model):
name = models.CharField(max_length=50, unique=True, verbose_name='Name')
slug = models.SlugField(unique=True)
tech = models.CharField(max_length=50)
description = models.TextField(max_length=500, verbose_name='Description')
image = models.ImageField(upload_to='portfolio/')
profile = models.ForeignKey(Profile, on_delete=models.CASCADE)
def __str__(self):
return self.name
class Meta:
verbose_name = 'Project'
verbose_name_plural = 'Projects'
项目迁移和配置文件迁移代码
项目迁移
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Projects',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=50, unique=True, verbose_name='Name')),
('slug', models.SlugField(unique=True)),
('tech', models.CharField(max_length=50)),
('description', models.TextField(max_length=150, verbose_name='Description')),
('image', models.ImageField(upload_to='portfolio/')),
],
),
]
配置文件迁移
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('main_page', '0003_projects_image'),
]
operations = [
migrations.CreateModel(
name='Profile',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('full_name', models.CharField(max_length=50, verbose_name='Name')),
('email', models.EmailField(max_length=254, unique=True, verbose_name='Email')),
('bio', models.TextField(max_length=500, verbose_name='Description')),
('profile_picture', models.ImageField(upload_to='profile_picture')),
],
options={
'verbose_name': 'Profile',
'verbose_name_plural': 'Profiles',
},
),
]
外键关系迁移
# Generated by Django 4.0.2 on 2022-02-11 08:05
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('main_page', '0004_profile'),
]
operations = [
migrations.AddField(
model_name='projects',
name='profile',
field=models.ForeignKey(default='1', on_delete=django.db.models.deletion.CASCADE, to='main_page.profile'),
preserve_default=False,
),
]
最佳答案
您不能在数据库表中创建一个条目(或通过迁移添加一个字段来修改一个条目),其外键指向目标表上不存在的条目(在您的情况下为“配置文件”)。它没有意义 - 所以你会得到完整性错误。保留 default=1 并将其设置为“blank=True, null=True”,这样您就可以在创建或迁移期间将其留空。
关于python - django.db.utils.IntegrityError : The row in table 'main_page_projects' with primary key '1' has an invalid foreign key 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71083957/
首先我要说的是,我主要是一名 iOS 开发人员,最近才开始探索全栈开发的惊心动魄的冒险。我是 PHP 和 MySQL 的新手。话虽如此,我有一个问题,我希望需要一个直接的解决方案。 我正在为一个拥有预
我的表单上有 GridEx 对象并且... 我想用 for...next 循环在其中添加一些项目。实际上我找不到任何方法来添加带有自定义数据的新行。 我想在那个 GridEx 对象中选择一个特定的行。
我有以下数据框 df1 = DataFrame([['OBJ1', 10, 'BX', 'pool1', 'OBJ2'],['OBJ2', 0, '', '', 'OBJ1'],['OBJ3', 1
所以我有以下成员(member)历史表 User_ID | Start date | End Date | Type(0-7) | ---------------------------
我不擅长sql。我查看了 stackoverflow,但似乎对我没有任何用处。所以,我正在寻求帮助。是否可以根据行中的第一个字段将 2 行合并为 1 行。 我在 mysql 中执行此操作。我将展示示例
我了解 flex sm、md、lg 列的概念,但不了解应用于行的概念。弹性行有什么作用? sm、md、lg 尺寸应用于弹性行时意味着什么? 最佳答案 简答 - .row只是网格的容器 col .然而,
我遇到麻烦的地方 我相信我需要使用 COUNT;但是,我不知道如何将一行与同一列中的每一行进行比较,然后计算有多少行比相应行少/便宜。提前谢谢您! 这是我试图解决的官方问题: “使用示例架构,编写一条
我有以下 3 个相关表 Schools Departments Classes --------------- ------------------ --
我有代码: g, g_err = data[:, 4:6].T 我不知道[:, 4:6]的含义 尤其是第一个: .T 表示转置吗? 最佳答案 您有一个名为 data 的二维矩阵,您的代码从第一维获取所
我在行单击上附加了一个事件,在行内的复选框更改上附加了一个事件。 如何防止首先触发行单击? $(document).on('click', 'table tr', function() { con
我有一个场景,我需要连接两个 SQL 表并且正在为如何做而苦恼。假设在表 A 中我有这个: ColA ColB ColC ColD 45 55 17 45 45
我用谷歌表格记录我们俱乐部的出席率。该表格链接到另一个谷歌表格,因此可以自动创建一个名字列表,并按字母顺序排序。在这张表格中,我还根据我们所做的活动,在人的名字旁边手动输入点数。。问题是,由于姓名列表
这个问题在这里已经有了答案: What is a NullPointerException, and how do I fix it? (12 个回答) 5年前关闭。 编辑:我正在使用此代码读取 Ex
我是 R 的初学者。我希望你能帮助我解决我的问题。我的数据集中的文件名包含大量信息。我必须提取这些信息来创建单独的变量。 首先我使用 splits <- t(as.data.frame(strspli
假设我有一个 CSR 格式的矩阵,将一行(或多行)设置为零的最有效方法是什么? 下面的代码运行得很慢: A = A.tolil() A[indices, :] = 0 A = A.tocsr() 我不
我遇到了一个相当复杂的问题。我有一个包含三行的数据框:id、info 和 rownum。数据如下所示: id info row 1 a 1 1 b 2
我正在阅读learnjsdata.com并遇到了这种不熟悉的 JavaScript 语法。语法如下: lookupIndex[row[lookupKey]] = row; 有人知道这里发生了什么吗?我
我有一个表格,收集每周足球比赛的结果。 根据每场比赛的结果,我根据 ID 为玩家输入 3、1 或 0 分,具体取决于他们是赢、平还是输。 id Name A1 B1 C1 A2 B2
我有一个 mysql 表: 在表1中,我有3列:Bidang、Keahlian、Nilai。在 saran 列的表结果中,我想根据 bidang 组合 keahlian,但如果 nilai > 0,则
我有一个看起来像这样的表 | ID | item1 | item 2 | | 1 | A1 | B1 | | 2 | A2 |
我是一名优秀的程序员,十分优秀!