如何让每个字段都能在Django REST中使用多个选项处理请求?

时间:2017-12-12 18:42:34

标签: django rest django-rest-framework

假设我拥有一个商店,并且有一个数据库表,其中包含我销售的所有商品的信息;它基本上记录了我卖的东西以及我卖给它的人。我使用Django REST与所述数据库连接,我可以通过 / rest / purchases 访问表格数据。

我想通过客户过滤这些购买,但我也希望能够传递一系列客户的ID并获得他们所做的所有购买。这里有一个问题:我很清楚这可以通过在这个特定端点的viewset类中创建一个自定义过滤器类或者重写get_queryset方法来轻松实现。问题是我希望此功能可用于所有视图集中的所有字段,如果我稍后创建另一个项目,我还希望在其所有视图集和字段中使用此功能。因此,更改get_queryset方法或添加自定义filter_classes不是一个可行的选择,因为它占用了太多时间。

底线:有没有办法创建这个自定义过滤器并将其注入我项目的所有字段?研究DRF,我得到了定义每个字段的过滤器的位置,但这种情况在DRF体系结构( BaseFilterSet 类)中的类中发生得太深,所以,我不能只改变东西那里。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以根据http://www.django-rest-framework.org/api-guide/filtering/#djangofilterbackend

中的文档添加默认过滤器后端

如果django过滤器后端不能满足您的需求,那么您可以选择更多预先烘烤过的后端。或者,如果你需要,你可以自己动手。