gpt4 book ai didi

django - 将数据库列复制到 Django 中的另一个

转载 作者:行者123 更新时间:2023-12-04 03:10:49 27 4
gpt4 key购买 nike

我正在编写一个迁移,它要求我用来自另一个字段(具有相同类型和约束)的现有数据填充一个字段。在 Django 中是否可以在单个操作中复制数据?当我需要复制数据时,目标列已经存在。

在 SQL 中,我会这样写:

UPDATE my_table SET column_b = column_a;

编辑

当前的答案建议遍历模型实例,但这是我想要避免的。可以不用循环来完成吗?

最佳答案

正如评论中提到的,您可以简单地为此编写迁移。我认为下面应该可以工作,尽管我还没有测试过。它使用 queryset update API and F避免循环

from __future__ import unicode_literals

from django.apps import apps
from django.db import migrations, models
from django.db.models import F


def copy_field():
MyModel = apps.get_model('<your app>', 'MyModel')
MyModel.objects.all().update(column_a=F('column_b'))


class Migration(migrations.Migration):
dependencies = [
('<your app>', '<previous migration>'),
]

operations = [
migrations.RunPython(copy_field),
]

关于django - 将数据库列复制到 Django 中的另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41500811/

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