我正在尝试创建一个get方法,将key / value参数传递给fetch对象。
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并将其作为我的queryset传递
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)
答案 0 :(得分:4)
这意味着您的模型没有名为key
的字段,因为您正在传递key=val
,所以它正在寻找它。
我假设您正在寻找key
替换为函数的key
参数的值。关键字参数不起作用,因此在这种情况下,您需要构建一个字典并使用解包:
obj = self.__model__.objects(**{key: val}).first()