首页 > 解决方案 > 使用 Django Rest 框架过滤每个继承视图集的视图集

问题描述

我有这样的视图:

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

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

标签: django-rest-framework

解决方案


您可以在子视图集中指定具体的查询集。但当然,查询集模型需要有类似的 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()

推荐阅读