使用Django Rest框架过滤继承了Viewset的每个Viewset

时间:2020-09-21 23:20:49

标签: django-rest-framework

我有这样的观点:

class CountryBasedViewset(viewsets.ModelViewSet):
    def get_queryset(self):
        [element that needs to be filtered by country].filter(country=self.request.data["country"])

有什么方法可以使该元素被过滤,使其适用于任何继承视图集的东西?

1 个答案:

答案 0 :(得分:0)

您可以在子视图集中指定具体的查询集。但是,当然,查询集模型需要具有类似的API。

class CountryBasedViewset(viewsets.ModelViewSet):
    queryset = None
    def get_queryset(self):
        self.filter(country=self.request.data["country"])

class ViewsetA(CountryBasedViewset):
    queryset = ModelA.objects.all()

class ViewsetB(CountryBasedViewset):
    queryset = ModelB.objects.all()