2014-09-28 41 views
0

我想改变模型的名字在Django 1.7中更改模型的名称?

来源:

class GreenPost(models.Model): 
user = models.ForeignKey(settings.AUTH_USER_MODEL) 
title = models.CharField(max_length=40) 
text = models.CharField(max_length=255) 

def __unicode__(self): 
    return str(self.user.id) + " -- " + self.text 

class GreenMessage(models.Model): 
    post = models.ForeignKey(Post) 
    text = models.CharField(max_length=255) 
    status = models.BooleanField(default=False) 
    user = models.ForeignKey(settings.AUTH_USER_MODEL) 

    def __unicode__(self): 
    return str(self.post.user.username) + " -- " + self.text 

要:

class Post(models.Model): 
user = models.ForeignKey(settings.AUTH_USER_MODEL) 
title = models.CharField(max_length=40) 
text = models.CharField(max_length=255) 

def __unicode__(self): 
    return str(self.user.id) + " -- " + self.text 

class Message(models.Model): 
    post = models.ForeignKey(Post) 
    text = models.CharField(max_length=255) 
    status = models.BooleanField(default=False) 
    user = models.ForeignKey(settings.AUTH_USER_MODEL) 

    def __unicode__(self): 
    return str(self.post.user.username) + " -- " + self.text 

如果我刚申请了移民,Django的ORM会放弃我的老数据库表和创建新表格。因此,删除我可能在数据库中的任何数据。

什么是我可以重命名模型,但仍然保持数据和ex(外键)相同关系的方法?

回答

2

自动检测器可能会感到困惑,因为您一次更改Models。尝试每次更改一个名称,每次运行makemigrations

如果由于某种原因不起作用,您可以创建自己的迁移文件(使用makemigrations --empty)并使用RenameModel操作。