如何在Django中跨表移动数据?

1 投票
1 回答
827 浏览
提问于 2025-04-16 22:56

假设我有三个表,分别是A、B和C。A是当前使用的表,B和A之间是一对一的关系,而C是一个存档表,用来存放旧的A表数据。那么在Django中,我想把A表中的一部分数据移动到C表,同时保持与B表的一对一关系。

那么我该怎么做呢?

我是不是应该把数据复制到C表,然后在A表中删除这些数据?这样的话,怎么才能保持与B表的数据关系呢?是不是要在B表中和C表建立一对一的关系?这是不是意味着我需要在B表中设置一些关键字段?如果我从A表中删除数据,Django会不会自动在B表中也删除相关的数据?

或者说,是否有其他方法可以在表与表之间移动数据呢?

1 个回答

1

假设你的应用里有三个模型,分别是A、B和C。你可以让A和C有相似的字段,然后把A里的数据复制到C里,包括指向B的外键字段。

在Django中,当你调用删除操作时,它会模拟SQL中的ON DELETE CASCADE约束,想了解更多细节可以查看这个链接:https://docs.djangoproject.com/en/1.3/ref/models/querysets/#delete

撰写回答