我正在做一个CreateApiView类,该类内部的方法是错误:“ detail”:“不允许使用方法\” GET \“。”,
web
答案 0 :(得分:1)
简而言之:由于您更改了实体(您似乎在这里删除了一个实体),因此您确实无法通过GET请求触发视图。
一个GET请求应该具有 no 副作用,这意味着这些实体保持不变(相同数量的实体和相同的值)。
一个CreateApiView
[drf-doc]实现了:
(...)
提供
post
方法处理程序。
因此您只能对此视图发出POST请求,它不允许允许DELETE,GET,PATCH,PUT等请求。
例如,您可以使用requests
库或curl -X POST ...
[wiki]发出POST请求。
话虽如此,您的实现看起来更像是DestroyApiView
[drf-doc]。该视图处理DELETE请求。
答案 1 :(得分:0)
class RetractBidAPIView(APIView)
permission_classes = (permissions.IsAuthenticated,)
def get(self, request, *args, **kwargs):
auction = get_object_or_404(Auction, pk=self.kwargs.get(pk)
date_now = datetime.now(timezone.utc)
serializer = RetractBidSerializer(data=request.data,
context={"request": request})
serializer.is_valid(raise_exception=True)
serializer.save(buyer=request.user, auction=auction)
bid = get_object_or_404(Bid, pk=current_bid.pk)
bid.delete()
return Response(serializer.data, {"detail": "You bid is retracted"},
status=status.HTTP_200_OK)