基于现有值的bulk_upsert更新

问题描述

我需要批量更新一些数据集。但是应该根据已经存在的现有值计算一个字段。为简单起见,我使用字段 IN_updated_at 来更新数据库中已存在的相同值。即F('IN_updated_at')

  from django.db.models import F
  
  for i in some_list:
      sync_list.append(
            {
                'id':'some_id','last_synced_time': Now(),'IN_updated_at': F('IN_updated_at')
            }
        )

 MyModel.objects.bulk_update([MyModel(**kv) for kv in sync_list],['last_synced_time','IN_updated_at'])

但我收到以下错误

TypeError: 预期的字符串或类似字节的对象

我对 JSON 字段也做了同样的事情,但出现以下错误

TypeError: 'F' 类型的对象不是 JSON 可序列化的

我怎样才能得到这份工作?

注意:我按照 this answer 使用它,但在 bulk_upsert 中使用。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)