相关疑难解决方法(0)

用于重命名模型和关系字段的Django迁移策略

我打算在现有的Django项目中重命名几个模型,其中有许多其他模型与我想要重命名的模型有外键关系.我很确定这需要多次迁移,但我不确定具体的程序.

假设我开始在Django应用程序中使用以下模型myapp:

class Foo(models.Model):
    name = models.CharField(unique=True, max_length=32)
    description = models.TextField(null=True, blank=True)


class AnotherModel(models.Model):
    foo = models.ForeignKey(Foo)
    is_awesome = models.BooleanField()


class YetAnotherModel(models.Model):
    foo = models.ForeignKey(Foo)
    is_ridonkulous = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)

我想重命名Foo模型,因为名称并没有真正意义,并且导致代码混乱,并且Bar会使名称更加清晰.

从我在Django开发文档中读到的内容,我假设以下迁移策略:

步骤1

修改models.py:

class Bar(models.Model):  # <-- changed model name
    name = models.CharField(unique=True, max_length=32)
    description = models.TextField(null=True, blank=True)


class AnotherModel(models.Model):
    foo = models.ForeignKey(Bar)  # <-- changed relation, but not field name
    is_awesome = models.BooleanField()


class YetAnotherModel(models.Model):
    foo = models.ForeignKey(Bar)  # <-- changed relation, …
Run Code Online (Sandbox Code Playgroud)

python django django-migrations

133
推荐指数
8
解决办法
6万
查看次数

标签 统计

django ×1

django-migrations ×1

python ×1