Django在for循环中更新用法

时间:2018-07-12 12:14:50

标签: django sql-update

在Django中,即使一切正确,我也无法更新数据库。(我假设:))

  • 我应该继续执行查询“ get”而不是“ filter”并使用“ save” 而不是“更新”? 在我的数据库中,我有P_350和P_450列。 我没有错误,也没有任何更新

    for thing_id, values_dict in groups.items():
            for value_id, value_value in values_dict.items():
                qs = RFP.objects.filter(id__in=thing_id)
                updates = {}
                if value_id == '350':
                    if len(value_value) > 1:
                        updates['P_350'] = value_value
                if value_id == '450':
                    if len(value_value) > 1:
                        updates['P_450'] = value_value
                if updates:
                    qs.update(**updates)
    

这是这些组的打印件。

397 350 try_3
397 450 try_4
370 350 try_1
370 450 try_2

1 个答案:

答案 0 :(得分:1)

您应该尝试使用qs = RFP.objects.filter(id=thing_id)而不是qs = RFP.objects.filter(id__in=thing_id)__in正在寻找ID列表,您正在提供一个字符串,它将把该字符串视为一个列表。