gpt4 book ai didi

python/mongoengine 将关键字参数作为变量传递

转载 作者:太空宇宙 更新时间:2023-11-04 10:44:01 25 4
gpt4 key购买 nike

我正在尝试创建一个将键/值参数传递给获取对象的 get 方法。

def find_by_one(self, val, key='id'):
obj = self.__model__.objects(key=val).first()
return obj if obj else None

我得到的错误

InvalidQueryError: Cannot resolve field "key"

金德尔回答了我的问题。我最终改变了我的方法来传递 **kwargs 并将其作为我的查询集传递

  def find_by_one(self, **kwargs):
user = self.__model__.objects(**kwargs).first()
return user if user else None

现在我可以调用我的 find_by_one

obj.find_by_one(id=obj_id)

代替

obj.find_by_one(obj_id)

最佳答案

这意味着您的模型没有名为 key 的字段,而这正是它正在寻找的字段,因为您要传入 key=val

我假设您正在寻找 key 以替换为函数的 key 参数的值。关键字参数不能以这种方式工作,因此在这种情况下,您需要构建一个字典并使用解包:

obj = self.__model__.objects(**{key: val}).first()

关于python/mongoengine 将关键字参数作为变量传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18680704/

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