##任何人都知道如何解決這個問題。即使我使用了 ScrapyItem.objects.all(),我在 django rest 框架的 APIView 中的 post 方法中也只得到一個物件。誰知道為什么##
class ScrapyViewSet(APIView):
def get(self, request, format=None):
snippets = ScrapyItem.objects.all()
serializer =ScrapySerializer(snippets, many=True)
return Response(serializer.data)
def post(self, request):
snippets = ScrapyItem.objects.all()
domain=request.data['domain']
print(domain)
for i in snippets:
print(i)
if i.domain==domain:
return Response({"status": "success", "data": str(i.data)}, status=status.HTTP_200_OK)
else:
return Response({"status": "error", "data": 'error'}, status=status.HTTP_400_BAD_REQUEST)
uj5u.com熱心網友回復:
一個return宣告停止功能和回傳后的運算式的結果return關鍵字。因此,這意味著即使存在具有給定域的其他物件,也不會考慮這些物件。
您可以簡單地序列化與給定域匹配的專案集合:
class ScrapyViewSet(APIView):
def get(self, request, format=None):
snippets = ScrapyItem.objects.all()
serializer =ScrapySerializer(snippets, many=True)
return Response(serializer.data)
def post(self, request):
domain=request.data['domain']
snippets = ScrapyItem.objects.filter(domain=domain)
if snippets:
serializer = ScrapySerializer(snippets, many=True)
return Response({'status': 'success', 'data': serializer.data}, status=status.HTTP_200_OK)
else:
return Response({'status': 'error', 'data': 'error'}, status=status.HTTP_400_BAD_REQUEST)
然而,通常 POST 請求用于更新應用程式的狀態:創建、更新或洗掉物體,而不是檢索專案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/360203.html
