Django:数据库列没有从变量更新,将其作为硬编码名称

8e2ybdfx  于 2023-01-14  发布在  Go
关注(0)|答案(1)|浏览(85)

我有以下代码用于更新数据库列。

def update_itemamadeus(check_flight_differences):

    for item_id, flight_details in check_flight_differences.items():

        for field, value in flight_details.items():

            ItemAmadeus.objects \
                .filter(
                    Q(id=item_id)
                ) \
                .update(
                    field = value
                )
    return

它将“field”作为变量,而不是它应该是的“code_airport_from_id”。

item_id = 130
field   = code_airport_from_id
value   = BCN

可怕的黄屏错误:

这能做到吗?

xtfmy6hx

xtfmy6hx1#

您需要将参数转换为dictionary,并通过解包将其传递给函数,如下所示:

ItemAmadeus.objects \
            .filter(
                Q(id=item_id)
            ) \
            .update(
                **{field:value}
            )

这个article on geeksforgeeks有一些解包的例子。

相关问题