尝试使用字段名的烧瓶变量更新 mongodb 时出错

error when trying to update mongodb using a flask variable for the fieldname

我正在使用 Flask 尝试更新一个 mongodb 集合,当我声明需要更新的字段名时它工作正常,但我希望字段名成为一个变量,具体取决于需要更新的字段名。这可以很好地更新字段:

Scoresenglish6.objects(user_id=user_id).update(E6001=str(score))

但是,正在更新的字段名可以更改(因此在本例中为“E6001”)所以我将需要更新的字段名作为一个名为 field_name:

的变量
score = "10"
field_name = "E6001"
Scoresenglish6.objects(user_id=user_id).update(field_name=str(score))

然后我得到错误:

mongoengine.errors.InvalidQueryError: Cannot resolve field "field_name"

显然是因为没有字段名称叫field_name。有没有办法做到这一点?提前致谢,我是一名从事家庭项目的家庭编码员,如果这看起来含糊不清且没有得到很好的解释,我深表歉意。

您可以使用locals()来实现您想要的。

试试这个:

score = "10"
field_name = "E6001"
Scoresenglish6.objects(user_id=user_id).update(locals()['field_name']=str(score))

查看 this tutorial 以了解 locals() 的工作原理和使用方法。