我想更改模型的名称
自:
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将删除旧的数据库表并创建新表。因此,删除我在数据库中可能拥有的任何数据。
我可以使用哪种方式重命名模型,但仍然保留数据和相同的关系(外键')
答案 0 :(得分:3)
自动检测器可能会因为您一次更改Models
而感到困惑。尝试一次更改一个名称,每次都运行makemigrations
。
如果由于某些原因无效,您可以创建自己的迁移文件(使用makemigrations --empty
)并使用RenameModel
操作。