gpt4 book ai didi

python - 如何在迁移过程中访问不在 django 模型中但在数据库中可用的字段

转载 作者:太空宇宙 更新时间:2023-11-03 16:46:09 25 4
gpt4 key购买 nike

我有一个这样的用户模型:

用户(姓名、photo_id、年龄)

现在我想从模型中删除字段 photo_id,因为我想创建一个新模型:

照片(用户,photo_id)

在上面的照片模型中,用户是用户表的外键。

但在删除该字段之前,我想将所有现有的 photo_id 复制到新表中。

所以我创建了三个迁移。1. 创建模型照片。2. 将数据从用户复制到照片。3.删除User中的photo_id字段。

问题是在第二次迁移期间,当我尝试访问 photo_id 字段以复制数据时。我无法访问该字段,因为它已从模型中删除。

但是字段是有数据库的。

那么任何人都可以在这里帮助我,如何在删除字段数据之前复制它。

最佳答案

在迁移中使用 apps.get_model,而不是直接导入模型。

def forwards_func(apps, schema_editor):
User = apps.get_model("myapp", "User")
for user in User.objects.all()
print(user.photo_id)

这是模型的历史版本,将具有 photo_id 字段。

请参阅example in the docs了解更多信息。

关于python - 如何在迁移过程中访问不在 django 模型中但在数据库中可用的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36279743/

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