2013-05-20 46 views
0

我只有一個mongodb文件'帖子'有EmbeddedListField的'評論'。我正在使用tastypie來構建API層,並且只有在請求單個帖子時,我才希望將註釋與其正文字段一起列出。當請求發佈帖子列表時,我不想顯示完整的評論主體,因爲這會干擾我的應用的性能。這是我在我的資源文件:我想要一個EmbeddedListField的評論,只有當我'獲取'單個帖子,而不是當我'獲取'帖子列表

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

我能做什麼樣?我不想爲'post_entry'和'post_list'創建兩個入口點,因爲這對於API的使用者來說是不好的設計。

回答

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 
相關問題