我有一个注册端点,其中POST请求不需要身份验证,因此在创建帐户时也不会将AUTH_FIELD添加到mongodb集合中。
由于此端点还需要用户限制的资源访问,因此我尝试使用post事件挂钩添加该字段:
AUTH_FIELD = 'user_id‘
def adduserid(request, payload):
data = json.loads(payload.get_data().decode('utf-8'))
setid = data['_id']
app.data.driver.db['accounts'].update({"username" : username},{"$set": {"user_id": setid}})
app.on_post_POST_accounts += adduserid
结果是我得到了一个KeyError:
File "run.py", line 30, in adduserid
setid = data['_id']
KeyError: '_id'
我感觉我正在以错误的方式解析这个有效负载对象,但我不知道哪里出了问题。也许有一种更简单的方法可以做到这一点?
发布于 2018-06-01 22:39:37
_id
字段不是有效负载的一部分,但是如果您使用on_inserted_<resource_name>
数据库挂钩,则可以访问它,因为eve在插入数据库之前添加了_id
。此处的文档(http://python-eve.org/features.html#database-event-hooks)
https://stackoverflow.com/questions/50608868
复制相似问题