我有一个相当复杂的逻辑,正如我刚刚发现的那样,它会导致记录简单地消失。我将尝试布置代码的逻辑...
- 我们的数据库中有大约 1,000 个客户
- 每年一次,我们按顺序发送两封信(第一封必须先出去,然后大约一个月后第二封)
- 为了让我们能够发送信件,需要对每个客户的信息进行一组大约 30 项检查和平衡。诸如“我们是否有客户 X 的记录”、“我们是否有关于客户 Y 的信息”。只是我们在发送信件之前需要存档的一组信息。
- 对于缺少信息的客户,我创建了一个“暂存区”,其中显示了缺少信息的客户列表,以及他们缺少哪些信息。
- 客户将所有信息(即:我们可以发送第一封信)进入“Ready for First Letter”区域
- 在任何时候,我们都可能会丢失一些信息,这会导致客户离开“Ready for First Letter”区域并返回“Staging Area”。
- 用户应纠正情况(添加缺失的信息)以将客户端踢回“准备好接收第一封信”区域
- 发送第一封信后,客户将进入“准备第二封信”区域。同样,如果我们在任何时候丢失了一些信息,客户端应该弹出“准备第二封信”区域并返回暂存区域。
我发现正在发生的是客户将在“准备好接收第一封信”区域,然后我们会丢失一些信息。客户应该只是移动到“Stgin Area”。然而,记录简单地消失了!它似乎被删除了,我在代码中的任何地方都找不到关键字delete
. 我有点困惑为什么会发生这种情况。
我知道在没有我发布代码的情况下很难做出任何类型的“你做错了”类型的评论,但我真的不知道该发布什么,因为有很多代码可以让这一切发生(我'我概括了很多正在发生的事情)。
我想我想知道是否存在记录可能被 Django 删除或删除的情况。这会发生吗?如果是这样,似乎很疯狂...
谢谢
* 编辑 *部分见解:
我想我已经找到了神秘发生的地方。我一直在通过从客户的记录中删除它来测试特定的信息,以查看客户是否确实返回到暂存区。当我删除此特定信息时,客户的记录也消失了。这是我的代码(不是复制和粘贴,只是一个重写的想法):
c = client.objects.get(pk=1)
tmp = c.specificInfo
tmp.delete()
c.specificInfo = None
c.save()
我应该指出这c.specificInfo
是一个外键。所以,大概我正在分配一条不同的记录tmp
,然后删除该项目。这样做也有删除的副作用client
。
非常混乱...