Eve子资源和嵌入资源序列化

时间:2016-03-02 15:15:52

标签: python eve

我正在使用Eve RESTful API框架

我试图在几周后做一件简单的事情,但我没有管理。 我只想要一个地方列表和一个评论列表,如我在settings.py中所描述的那样:

settings.py:

comments_schema = {
                 'spot_id': {
                         'type': 'string',
                         'required': True
                 },
                 'description': {
                         'required': True,
                         'type': 'string',
                         'empty': False,
                         'maxlength': 250
                 }
 }

 comments = {
         'url': 'spots/<regex("[a-f0-9]{24}"):place_id>/comments',
         'item_title': 'comment',
         'resource_methods': ['GET', 'POST', 'DELETE'],
         'schema': comments_schema
 }

 places_schema = {
         'name': {
                 'required': True,
                 'type': 'string',
                 'empty': False,
                 'maxlength': 60
         },
         'description': {
                 'required': True,
                 'type': 'string',
                 'empty': False,
                 'maxlength': 250
         },
         'commentaries': {
                 'type': 'objectid',
                 'data_relation': {
                         'resource': 'comments',
                         'field': '_id',
                         'embeddable': True
                 }
          }
  }

  places = {
         'item_title': 'place',
         'resource_methods': ['GET', 'POST', 'DELETE'],
         'item_methods': ['GET', 'PUT', 'PATCH', 'DELETE'],
         'schema': places_schema
 }

 DOMAIN = {
         'places': places,
         'comments': comments
 }

我可以POST地方,我可以发表评论,但是当我获取地点时,我没有嵌套的评论。当我获得评论时,它是一个返回的空列表。

我检查了我的Mongo评论集,我正确地看到了我的评论。这意味着它们已正确插入,但未正确检索。

我知道我有点混淆Sub resourcesEmbedded resource serialization。如果我没有错,那么子资源允许您将资源作为子资源进行管理(我的意思是,使用诸如POST的注释之类的URL)和嵌入资源序列化允许您将每个链接的注释嵌套在的地方。

但是,请帮助我理解为什么我不能简单地创建地点,创建评论,然后使用嵌套评论获取我所有的地方。

谢谢,

MC

0 个答案:

没有答案