首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在django-south中重命名外键,正确的方法

如何在django-south中重命名外键,正确的方法
EN

Stack Overflow用户
提问于 2012-03-06 00:10:43
回答 1查看 2.2K关注 0票数 3

我需要使用南迁移在我的django模型中重命名一个外键。当我发现这个线程How to rename a foreignkey field with South?时,我认为我很幸运,然而,所有描述的方法都失败了,并出现了各种错误。有没有人真的知道该怎么做呢?

我想将SomeModel.registered_to = models.ForeignKey( User )重命名为SomeModel.owner = models.ForeignKey( User ),并保持Userowner之间的关系,如果有任何帮助,将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-06 00:30:43

更改字段名称并运行python manage.py schemamigration --auto yourapp。South将添加代码来删除该列并添加一个新列。让South生成迁移可以确保ORM被正确冻结,因此您只需将实际迁移更改为重命名,而不是删除和添加。只需从向前和向后迁移到中删除这些行,并将其替换为:

代码语言:javascript
复制
def forwards(self, orm):
    db.rename_column('yourapp_yourmodel', 'registered_to_id', 'owner_id')

def backwards(self, orm):
    db.rename_column('yourapp_yourmodel', 'owner_id', 'registered_to_id')

保存,然后迁移你的应用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9569963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档