Django tastypie仅使用外部资源进行过滤并从API响应中排除

时间:2015-03-16 13:11:31

标签: django tastypie

使用以下资源类我正在创建API以列出给定用户的所有最喜欢的商家。

class FavouriteMerchantResource(ModelResource):                                                       
    '''Fetch All favourite merchants associated with given user'''                                    

    user = fields.ForeignKey(UserResource, 'user', null=True, full=True)           
    merchant = fields.ForeignKey(MerchantResource, 'merchant', null=True, full=True)                  

    class Meta:                                                                                       
        queryset = FavouriteMerchant.objects.all()                                                    
        resource_name = 'fm'                                                                          
        include_resource_uri = False                                                                  
        allowed_methods = ['get']                                                                     
        filtering = {                                                                                 
            'user': ALL_WITH_RELATIONS                                                            
        }                                                                                             

现在我想从API响应中排除用户详细信息,但希望使用用户名(来自用户表)字段来过滤结果。

仅供参考我已尝试添加以下排除字段,但仍会在响应中生成用户详细信息:

excludes = ['user']

1 个答案:

答案 0 :(得分:0)

您可以覆盖dehydrate功能并从捆绑包中删除用户。

类似的东西:

def dehydrate(self, bundle):
    del bundle.data['user']
    return bundle