如何在Django中跨表移动数据?
假设我有三个表,分别是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。