2017-06-26 46 views
1

後對象名單的工作有視圖集:Django的REST框架,在我<code>views.py</code>與get_queryset

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. 

在哪裏,我怎麼能過濾後項目對象操作?具備從請求中獲取數據的能力。例如:

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

謝謝!

回答

2

當您使用ModelViewSet時,您將不得不覆蓋例如list()方法。根據您的理解,簽名是list(self, request, *args, **kwargs),您可以根據需要使用請求對象並處理數據。

讓我知道你是否需要進一步的幫助!

+0

非常感謝!這個對我有用!它給了我理解,觀點是如何工作的! :) –

+0

很高興它幫助你:) –