如何使用Tastypie通过相关模型属性过滤API结果?

Dan*_*ell 3 django tastypie

鉴于以下API定义,我需要能够按产品别名过滤事件.

鉴于一个事件属于一个Job而一个Job属于一个产品,我不知道如何规范.

api.py:

class ProductResource(ModelResource):

    class Meta:
        queryset = Product.objects.all()
        resource_name = 'product'
        allowed_methods = ['get']
        excludes = ['created_at','updated_at']
        filtering = {
            'alias': ALL
        }

class EnvironmentResource(ModelResource):

    class Meta:
        queryset = Environment.objects.all()
        resource_name = 'environment'
        allowed_methods = ['get']
        excludes = ['created_at','updated_at']

class JobResource(ModelResource):

    product = fields.ForeignKey(ProductResource, 'product')

    class Meta:
        queryset = Job.objects.all()
        resource_name = 'job'
        allowed_methods = ['get']
        excludes = ['created_at','updated_at']

class EventResource(ModelResource):

    environment = fields.ForeignKey(EnvironmentResource, 'environment',full=True)
    job = fields.ForeignKey(JobResource, 'job',full=True)

    class Meta:
        queryset = Event.objects.all()
        resource_name = 'event'
        allowed_methods = ['get']
        excludes = ['created_at','updated_at']
        filtering = {
            HOW DO I FILTER BY PRODUCT ALIAS????
        }
Run Code Online (Sandbox Code Playgroud)

kgr*_*kgr 11

鉴于以下过滤规范:

# In EventResource
filtering = { 
   'job' : ALL_WITH_RELATIONS
}

# In JobResource
filtering = { 
   'product' : ALL_WITH_RELATIONS
}

# In ProductResource
filtering = {
    'alias' : ALL
}
Run Code Online (Sandbox Code Playgroud)

你应该能够做到:

/api/events/job__product__alias=something
Run Code Online (Sandbox Code Playgroud)