关于python:在Django中重命名模型(表)

Renaming models(tables) in Django

所以我已经在Django为我的数据库创建了模型,但现在想重命名这个模型。我已经更改了元类中的名称,然后进行迁移/迁移,但这只是创建了全新的表。

我也尝试过模式迁移,但也没有成功,我使用的是django 1.7。

这是我的模型

1
2
3
4
5
6
7
8
class ResultType(models.Model):
    name = models.CharField(max_length=150)
    ut = models.DateTimeField(default=datetime.now)
    class Meta:
       db_table = u'result_type'

    def __unicode__(self):
        return self.name

干杯


Django不知道,你想做什么。默认情况下,它将删除旧表并创建新表。您需要创建一个空迁移,然后使用此操作(您需要自己编写它):

https://docs.djangoproject.com/en/stable/ref/migration operations/renamemodel

像这样:

1
2
3
4
5
6
7
8
9
class Migration(migrations.Migration):

    dependencies = [
        ('yourappname', '0001_initial'),
    ]

    operations = [
        migrations.RenameModel("OldName","NewName")
    ]