如何在django rest框架中访问通用API视图中的url kwargs(更具体的ListCreateAPIView),例如说我想覆盖通用APIView类中的get_queryset()
方法,我希望它使用从url kwargs中提取的值,如何我会这样做吗?
您可以访问以下内容
def get_queryset(self):
data = self.kwargs.get("key-name")
如果你想使用get_queryset()方法,你可以做这样的事情
def get_queryset(self):
queryset = Model.objects.filter(parameter=self.kwargs['thing'])
return queryset
来自leelum1和aman kumar的答案对我帮助很大,因为我有同样的问题。我会添加一个如何使用他们的答案的特定示例。在下面的代码中,我尝试获取所有具有category
属性的产品,这些产品是从url传递给cat
变量的相同字符串。
class ListProductsView(generics.ListCreateAPIView):
serializer_class = ProductSerializer
def get_queryset(self):
queryset = Product.objects.filter(category=self.kwargs['cat'])
return queryset
这解决了我使用url中的变量过滤对象的问题。