使用过滤器中的信息修改TastyPie资源查询集

时间:2017-08-04 16:03:39

标签: django tastypie

我有一种情况,我想根据传入的过滤器修改资源的查询集。

我想要这个,因为某些过滤器需要将昂贵的操作添加到查询集中,我想只在用户请求相关过滤器时执行这些操作。

文档(HERE)向您展示了如何使用contains_1 [1;2;3;4];; - : bool = true contains_1 [2;3;4;5];; - : bool = false (有权访问请求)修改查询集。

我想做类似的事情:

class MyResource(ModelResource):

get_object_list

有什么想法?如果我可以在不中断请求/响应周期的其余部分的情况下从get_object_list执行build_filters,那么这可能会解决我的问题。任何方向都表示赞赏。

1 个答案:

答案 0 :(得分:0)

希望有人能找到更好的答案,但是: 我检查了request对象,发现它有一个存储queryDict的请求[' GET']字段。

所以,如果你打电话给localhost:8000/api/dosomething?first_name=stevie&last_name=wonder

然后request['GET'].keys()将返回['first_name,' 'last_name']

就我的目的而言,这已经足够了。您可能希望将其传递给self.build_filters,但我并不需要。