gpt4 book ai didi

django - 在事件应用程序上将数据从一个 django 模型移动到另一个(django+south)

转载 作者:行者123 更新时间:2023-12-02 06:38:06 28 4
gpt4 key购买 nike

我正在尝试将一些字段从一个 django 模型移动到一个新模型。假设我有一个书籍模型:

class Book(models.Model):
title = models.CharField(max_length=128)
author = models.CharField(max_length=128)

我决定需要为作者提供一个单独的模型(以添加额外的数据等)。因此,请记住我有一个正在运行的充满数据的应用程序,保持兼容性的所需布局将是:

class Author(models.Model):
name = models.CharField(max_length=128, null=True) # null at first; filled with datamigration
nationality = models.CharField(max_length=64, null=True) # we don't have nationality for existing authors, but we'll ask the new ones

class Book(models.Model):
title = models.CharField(max_length=128)
author_model = models.ForeignKey(Author, null=True)
@property
def author(self):
return self.author_model.name
@author.setter
def author(self, newval):
self.author_model.name = newval
这样,我必须创建添加作者的架构迁移,然后创建数据迁移来传输数据并填充书籍的author_model_id,最后创建数据迁移以从“书籍”表中删除“作者”列。问题是,将 Book.author 从字段更改为属性后,我的迁移是否有效?我的意思是,如果在之前的一次迁移中 South 尝试访问 Book.author (需要 CharField),它实际上会获得一个尝试获取不存在模型的属性。怎样做才是正确的?

最佳答案

我首先会在一次迁移中将author CharField 重命名为author_str,然后添加新模型并进行数据迁移,然后删除author_str 字段。

Django - How to rename a model field using South?

关于django - 在事件应用程序上将数据从一个 django 模型移动到另一个(django+south),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16334174/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com