首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python Eve:使用事件钩子在auth_field中添加_id值

Python Eve:使用事件钩子在auth_field中添加_id值
EN

Stack Overflow用户
提问于 2018-05-30 23:48:41
回答 1查看 261关注 0票数 1

我有一个注册端点,其中POST请求不需要身份验证,因此在创建帐户时也不会将AUTH_FIELD添加到mongodb集合中。

由于此端点还需要用户限制的资源访问,因此我尝试使用post事件挂钩添加该字段:

AUTH_FIELD = 'user_id‘

代码语言:javascript
复制
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:

代码语言:javascript
复制
File "run.py", line 30, in adduserid
setid = data['_id']
KeyError: '_id'

我感觉我正在以错误的方式解析这个有效负载对象,但我不知道哪里出了问题。也许有一种更简单的方法可以做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-01 22:39:37

_id字段不是有效负载的一部分,但是如果您使用on_inserted_<resource_name>数据库挂钩,则可以访问它,因为eve在插入数据库之前添加了_id。此处的文档(http://python-eve.org/features.html#database-event-hooks)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50608868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档