gpt4 book ai didi

python - 删除模型实例时出现完整性错误

转载 作者:太空宇宙 更新时间:2023-11-03 14:20:03 24 4
gpt4 key购买 nike

我有两个模型,例如

class A(models.Model):
title = models.CharField(max_length=255)

class B(models.Model):
recommendation = models.ForeignKey(A, related_name="+")
title = models.CharField(max_length=255)

当我删除 A 模型实例时,我得到如下信息:

IntegrityError: update or delete on table "myapp_a" violates foreign key constraint "myapp_relate_recommendation_id_4a7c5340_fk_myapp_a_id" on table "myapp_b"
Detail: Key (id)=(27527) is still referenced from table "myapp_b".

我不明白为什么会发生这种情况,我认为应该默认删除 FK。

最佳答案

尝试向您的推荐字段添加on_delete参数:

models.py

class A(models.Model):
title = models.CharField(max_length=255)

class B(models.Model):
recommendation = models.ForeignKey(A, related_name="+", on_delete=models.CASCADE)
title = models.CharField(max_length=255)

运行python manage.py shell

>>> from abtest.models import A, B
>>> a = A(title="test A title")
>>> a.save()
>>> a
<A: A object (1)>
>>> b = B(title="test B title", recommendation=a)
>>> b.save()
>>> b
<B: B object (1)>
>>> b.recommendation
<A: A object (1)>
>>> a.delete()
(2, {'abtest.B': 1, 'abtest.A': 1})

您可以阅读有关 Django 如何处理外键删除的更多信息 here .

关于python - 删除模型实例时出现完整性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47993825/

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