【问题标题】:How to validate cascade delete when no corresponding table entry exists for that entry?当该条目不存在相应的表条目时如何验证级联删除?
【发布时间】:2016-05-08 07:46:14
【问题描述】:

我有这两个模型

class Category(models.Model):
    store = models.ForeignKey(Store, related_name="categories")
    name = models.CharField(max_length=100)

class Item(models.Model):
    store = models.ForeignKey(Store, related_name="items")
    category = models.ForeignKey(Category, related_name="items")
    name = models.CharField(max_length=100)
    isPartiallySellable = models.BooleanField(default=False)
    note = models.CharField(max_length=500,default="")

当我删除一个类别条目时,我在 django 上收到以下错误

column item.isPartiallySellable does not exist
LINE 1: ...currentlyInStock", "item"."unit", "...
                                             ^

现在,我在 Item 表中没有任何条目,但仍然收到此错误。我希望级联发生,但我无法调试此特定错误。在旁注中,此错误有部分错误,如何在此处获取完整的错误消息。

【问题讨论】:

  • 迁移后是否添加了 isPartiallySellable?如果是,您是否运行了 makemigrations 并进行了迁移?

标签: django postgresql django-models django-rest-framework


【解决方案1】:

这是您的数据库存在的一个实际问题,无法保证约束。您应该运行健全性检查以确保所有外键都是最新的。

注意:如果您无法修复数据库本身,则必须覆盖删除功能并确保 FK 自己存在。

【讨论】:

  • 是的,我的迁移没有同步。伪造它们并再次删除对象。像魅力一样工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-27
  • 1970-01-01
  • 1970-01-01
  • 2022-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多