即使我使用 ScrapyItem.objects.all(),我在 django rest 框架的 APIView 内的 post 方法中也只得到一个对象。谁知道为什么
I am getting only one object in post method inside APIView of django rest framework even if I used ScrapyItem.objects.all(). Anyone knows why
##任何人都知道如何解决这个问题。即使我使用 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)
return
语句停止函数和 returns 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<strong>.filter(domain=domain)</strong>
if snippets:
serializer = ScrapySerializer(<strong>snippets</strong>, many=True)
return Response({'status': 'success', 'data': <strong>serializer.data</strong>}, status=status.HTTP_200_OK)
else:
return Response({'status': 'error', 'data': 'error'}, status=status.HTTP_400_BAD_REQUEST)
通常 POST 请求用于更新应用程序的状态:创建、更新或删除实体,而不是检索项目。
##任何人都知道如何解决这个问题。即使我使用 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)
return
语句停止函数和 returns 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<strong>.filter(domain=domain)</strong>
if snippets:
serializer = ScrapySerializer(<strong>snippets</strong>, many=True)
return Response({'status': 'success', 'data': <strong>serializer.data</strong>}, status=status.HTTP_200_OK)
else:
return Response({'status': 'error', 'data': 'error'}, status=status.HTTP_400_BAD_REQUEST)
通常 POST 请求用于更新应用程序的状态:创建、更新或删除实体,而不是检索项目。