0

我有一个 mongodb 文档“帖子”,其中包含EmbeddedListField“评论”。我正在使用tastepie 构建API 层,并且我希望仅在请求单个帖子时将评论与他们的正文字段一起列出。当请求帖子列表时,我不想显示完整的评论正文,因为这会影响我的应用程序的性能。这是我的资源文件中的内容:

comments = tastypie_mongoengine_fields.EmbeddedListField(of='api_core.resources.EmbeddedCommentResource', attribute='comments', full=True, null=True)

我能做些什么呢?我不想为“post_entry”和“post_list”创建两个入口点,因为这对 API 的使用者来说是糟糕的设计。

4

1 回答 1

0

我在脱水方法中做了一个简单的检查:

    def dehydrate(self, bundle):
    if self.get_resource_uri(bundle) != bundle.request.path:
        bundle.data['comments_count'] = len(bundle.data['comments'])
        del bundle.data['comments']
        bundle.data['user_id'] = bundle.data['user'].data['id']
        bundle.data['user_name'] = bundle.data['user'].data['first_name']
        bundle.data['user_uri'] = bundle.data['user'].data['resource_uri']
        del bundle.data['user']
    return bundle
于 2013-10-31T05:15:44.410 回答