2010-09-17 40 views
1

我已经开始使用Django提供的默认自动处理ID的模型。Django:如何重新排列对象ID

现在我已经开始与外部系统进行接口连接,该系统对同一个对象有自己的ID,并且将我自己的ID与外部系统对齐会非常方便。

但是,数字范围重叠,所以一个天真的解决方案将无法正常工作。

是否有一些优雅的方式来以安全的方式改变ID? (对象有多个外键/ m2ms等)

感谢

回答

0

我不知道这是不是最好的方式,但我会设置所有外国/ M2M键级联更新和定义的号码添加到所有在Django的数据库ID删除重叠的范围(10K或100K或更多依赖于您的数据)。

完成后,您可以从其他系统复制ID。为了安全起见,我会在复制ID列的同时做到这一点,以便不会丢失原来的...直到确保所有工作正常