Django“无法添加或更新子行:外键约束失败"

Django quot;Cannot add or update a child row: a foreign key constraint failsquot;(Django“无法添加或更新子行:外键约束失败)
本文介绍了Django“无法添加或更新子行:外键约束失败"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个模型 Coupon 和一个模型 Photo 带有 ForeignKey:

I have a model Coupon, and a model Photo with a ForeignKey to it:

class Photo(models.Model):
    coupon = models.ForeignKey(Coupon,
                               related_name='description_photos')
    title = models.CharField(max_length=100)
    image = models.ImageField(upload_to='images')

我在管理员中设置了内联,所以现在我可以将照片添加到来自管理员的优惠券中.

I set up inlines in the admin so now I'm able to add photos to a coupon from the admin.

我尝试添加一个,并且上传成功,但随后我得到 Django 的调试页面并出现此错误:

I attempt to add one, and upload is successful, but then I get Django's debug page with this error:

IntegrityError at /admin/coupon/coupon/321/
(1452, 'Cannot add or update a child row: a foreign key constraint fails (`my_project`.`coupon_photo`, CONSTRAINT `coupon_id_refs_id_90d7f06` FOREIGN KEY (`coupon_id`) REFERENCES `coupon_coupon` (`id`))')

这是什么,我该如何解决这个问题?

What is this and how can I solve this problem?

(如果重要的话,这是一个 MySQL 数据库.)

(If it matters, this is a MySQL database.)

我在一个数据集略有不同的 Sqlite3 数据库上进行了尝试,结果奏效了,所以也许我当前的数据库中有松散的数据?如何找到并删除它?

I tried it on an Sqlite3 database that has a slightly different dataset, and it worked, so perhaps there's loose data in my current DB? How can I find it and delete it?

推荐答案

我的一些表在 InnoDB 中,一些在 MyISAM 中...我将所有内容更改为 MyISAM,问题解决了.

Some of my tables were in InnoDB and some were in MyISAM... I changed everything to MyISAM and the problem was solved.

这篇关于Django“无法添加或更新子行:外键约束失败"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)
SQL/MySQL: split a quantity value into multiple rows by date(SQL/MySQL:按日期将数量值拆分为多行)