tastypie - 如何过滤通用外键?

时间:2013-06-05 10:28:45

标签: django django-models filter tastypie

我将此作为我的资源

class AResource(ModelResource):
    content_object = GenericForeignKeyField({
        B: BResource,
    }, 'content_object')

class Meta:
    queryset = A.objects.all()
    filtering = {
        'content_type': ????,
    }

我想通过资源BResource的id过滤此资源。
我试着通过这个网址过滤:
http://domain.com/api/v1/a/?content_type=/api/v1/b/7/
http://domain.com/api/v1/a/?content_object=/api/v1/b/7/
但它不起作用。

我们如何过滤这个?

1 个答案:

答案 0 :(得分:1)

我知道这是一个较旧的问题,但是如果有其他人发现它,我可以通过执行以下操作来解决同样的问题:

filtering = {
    'object_id': 'exact',
    'content_type': 'exact',
}

然后您的资源网址将如下所示:

http://domain.com/api/v1/a/?content_type=app_name,model_name&object_id=object_id

所以在OP的情况下,假设BResource在myapp中,模型名称是b_model

http://domain.com/api/v1/a/?content_type=myapp,b_model&object_id=7