【发布时间】:2020-06-07 02:56:17
【问题描述】:
通常,在 DRF 视图集中,您可能会执行以下操作:
class FooViewSet(viewsets.ViewSet):
"""
Foo-related viewsets.
"""
permission_classes = [IsAuthenticated,]
def list(self, request):
"""
A list of foo objects.
"""
context = {'request': self.request}
queryset = Foo.objects.all()
serializer = FooSerializer(queryset, many=True, context=context)
return Response(serializer.data)
def retrieve(self, request, pk=None):
"""
Get one publicly available Foo item.
"""
context = {'request': self.request}
queryset = Foo.objects.all()
store_object = get_object_or_404(queryset, pk=pk)
serializer = FooSerializer(store_object, context=context)
return Response(serializer.data)
这很好用,并且分别对应于:
GET /foo 和 GET /foo/<pk>。但是,我需要的最后一个端点是POST /foo/<pk>。这里的问题是,为视图提供create 方法通常会被路由到POST /foo。我可以从 ViewSet 本身做些什么简洁优雅的事情?还是基本上将POST /foo/<pk> 路由到特定的一次性视图的唯一选择?
【问题讨论】:
-
我的回答是否有助于解决您的问题?
标签: django django-models django-rest-framework