Django REST Framework,在get_queryset之后处理对象列表

时间:2017-06-26 14:52:00

标签: django pagination filtering django-rest-framework

在我的views.py中有ViewSet:

class ProductViewSet(viewsets.ModelViewSet):
    queryset = Product.objects.all()
    serializer_class = ProductSerializer
    filter_class = OrderFilter
    filter_backends = (
        OrderingFilter,
        DjangoFilterBackend,
    )
    def get_queryset(self):
         ...some query...
         return products # return QuerySet object with all products in db.

过滤后我在哪里以及如何使用Project对象进行操作?能够从请求中获取数据。例如:

for product in products: # after pagination, filtering, etc. 
    product.price = product.price*self.request.user.discount

谢谢!

1 个答案:

答案 0 :(得分:2)

当您使用ModelViewSet时,您必须覆盖list()方法。签名为list(self, request, *args, **kwargs),根据您的理解,您可以使用请求对象并根据需要操作数据。

如果您需要进一步的帮助,请告诉我们!