Django Rest Framework:使用 ModelViewSet 通过其 PK 获取实例列表
Django Rest Framework: using ModelViewSet to get a list of instances by their PKs
DRF 提供了一个名为 Model.views 的 超级有用 class 来创建具有基本 REST 操作和映射 Django 模型的 API,使用像这样的几行代码:
class MyObjectsViewSet(viewsets.ModelViewSet):
"""
A simple ViewSet for viewing and editing instances.
"""
queryset = MyObjects.all()
serializer_class = MyObjectsSerializer
如果我得到 http://myUrl/{pk}/
,我将获得有关由 pk
标识的 MyObjects 实例的数据。
有没有办法向 API 询问 return 更多实例的列表,以某种方式传递它们的 pks 的列表?
根据:
http://www.django-rest-framework.org/api-guide/filtering/
您可以执行以下操作:
class MyObjectsViewSet(viewsets.ModelViewSet):
"""
A simple ViewSet for viewing and editing instances.
"""
serializer_class = MyObjectsSerializer
def get_queryset(self):
queryset = MyModel.objects.all()
pks = self.request.query_params.get('pks', None)
if pks is not None:
queryset = queryset.filter(pks__in=pks)
return queryset
DRF 提供了一个名为 Model.views 的 超级有用 class 来创建具有基本 REST 操作和映射 Django 模型的 API,使用像这样的几行代码:
class MyObjectsViewSet(viewsets.ModelViewSet):
"""
A simple ViewSet for viewing and editing instances.
"""
queryset = MyObjects.all()
serializer_class = MyObjectsSerializer
如果我得到 http://myUrl/{pk}/
,我将获得有关由 pk
标识的 MyObjects 实例的数据。
有没有办法向 API 询问 return 更多实例的列表,以某种方式传递它们的 pks 的列表?
根据:
http://www.django-rest-framework.org/api-guide/filtering/
您可以执行以下操作:
class MyObjectsViewSet(viewsets.ModelViewSet):
"""
A simple ViewSet for viewing and editing instances.
"""
serializer_class = MyObjectsSerializer
def get_queryset(self):
queryset = MyModel.objects.all()
pks = self.request.query_params.get('pks', None)
if pks is not None:
queryset = queryset.filter(pks__in=pks)
return queryset