小编典典

Django - 如何使用 South 重命名模型字段?

all

我想更改模型中特定字段的名称:

class Foo(models.Model):
    name = models.CharField()
    rel  = models.ForeignKey(Bar)

应改为:

class Foo(models.Model):
    full_name     = models.CharField()
    odd_relation  = models.ForeignKey(Bar)

使用 South 最简单的方法是什么?


阅读 78

收藏
2022-06-22

共1个答案

小编典典

您可以使用该db.rename_column功能。

class Migration:

    def forwards(self, orm):
        # Rename 'name' field to 'full_name'
        db.rename_column('app_foo', 'name', 'full_name')




    def backwards(self, orm):
        # Rename 'full_name' field to 'name'
        db.rename_column('app_foo', 'full_name', 'name')

的第一个参数db.rename_column是表名,所以记住Django
如何创建表名
很重要:

Django 自动从模型类的名称和包含它的应用程序中派生数据库表的名称。模型的数据库表名是通过将模型的“应用标签”(您在 manage.py
startapp 中使用的名称)与模型的类名连接起来而构建的,它们之间使用下划线。

如果您有一个多字的驼峰式模型名称,例如
ProjectItem,则表名将是(即,即使它们是驼峰式app_projectitem,也不会在它们之间插入下划线)。project``item

2022-06-22