Post 成功但响应是前端错误
Post successful but response is an error on front end
我正在 post 通过 127.0.0.8000/post/
传输数据。我的 post 当然是成功的,因为我能够成功地看到我在 127.0.0.8000
的基 URL 中 post 编辑的内容,但我在 Django 前端得到以下响应.
AssertionError at /post/
Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>`
在 VS Code 中,我在终端中收到以下错误
Internal Server Error: /post/
Traceback (most recent call last):
File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\views\generic\base.py", line 69, in view
return self.dispatch(request, *args, **kwargs)
File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\rest_framework\views.py", line 511, in dispatch
self.response = self.finalize_response(request, response, *args, **kwargs)
File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\rest_framework\views.py", line 423, in finalize_response
assert isinstance(response, HttpResponseBase), (
AssertionError: Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>`
[27/Feb/2022 16:22:13] "POST /post/ HTTP/1.1" 500 74030
[27/Feb/2022 16:22:24] "GET / HTTP/1.1" 200 5799
我的Views.Py如下
@api_view(['GET'])
def getData(request):
queryset = Wallet.objects.all()
serializer = WalletSerializer(queryset, many=True, context={'request': request})
return Response(serializer.data)
@api_view(['GET'])
def getSingleData(request,pk):
queryset = Wallet.objects.all(id=pk)
serializer = WalletSerializer(queryset, many=False)
return Response(serializer.data)
@api_view(['POST'])
def postData(request):
serializer = WalletSerializer(data = request.data)
if serializer.is_valid():
serializer.save()
P.S 第二种方法我也无法通过ID获取个人数据,不行
您应该 return 来自您的 view/API
的响应实例
@api_view(['POST'])
def postData(request):
serializer = WalletSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
<b>return Response(serializer.data)
return Response(serializer.errors)</b>
我正在 post 通过 127.0.0.8000/post/
传输数据。我的 post 当然是成功的,因为我能够成功地看到我在 127.0.0.8000
的基 URL 中 post 编辑的内容,但我在 Django 前端得到以下响应.
AssertionError at /post/
Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>`
在 VS Code 中,我在终端中收到以下错误
Internal Server Error: /post/
Traceback (most recent call last):
File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\django\views\generic\base.py", line 69, in view
return self.dispatch(request, *args, **kwargs)
File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\rest_framework\views.py", line 511, in dispatch
self.response = self.finalize_response(request, response, *args, **kwargs)
File "C:\Users\Ahmed\AppData\Local\Programs\Python\Python310\lib\site-packages\rest_framework\views.py", line 423, in finalize_response
assert isinstance(response, HttpResponseBase), (
AssertionError: Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>`
[27/Feb/2022 16:22:13] "POST /post/ HTTP/1.1" 500 74030
[27/Feb/2022 16:22:24] "GET / HTTP/1.1" 200 5799
我的Views.Py如下
@api_view(['GET'])
def getData(request):
queryset = Wallet.objects.all()
serializer = WalletSerializer(queryset, many=True, context={'request': request})
return Response(serializer.data)
@api_view(['GET'])
def getSingleData(request,pk):
queryset = Wallet.objects.all(id=pk)
serializer = WalletSerializer(queryset, many=False)
return Response(serializer.data)
@api_view(['POST'])
def postData(request):
serializer = WalletSerializer(data = request.data)
if serializer.is_valid():
serializer.save()
P.S 第二种方法我也无法通过ID获取个人数据,不行
您应该 return 来自您的 view/API
的响应实例@api_view(['POST'])
def postData(request):
serializer = WalletSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
<b>return Response(serializer.data)
return Response(serializer.errors)</b>