Django REST API: POST 요청에 어떻게 응답합니까?

POST 요청을 악시오(VueJ)로 보내고 싶고, Django 서버가 POST 요청을 받았을 때 그 요청 메시지를 돌려받고 싶습니다.Django 서버에서 POST 요청을 받았을 때 함수를 만들고 JsonResponse({response: “got post request”, safe=False)를 반환하려고 했습니다.

JS 함수


sendMessage() {
 axios({

method: "POST",

url: url,

data: this.message
 })
 .then(response => {

this.receive = response;
 })
 .catch(response => {

alert('Failed to POST.' + response);
 })
 }
} 

views.py

from chat.serializer import chatSerializer from chat.models import * from rest_framework.routers import DefaultRouter from rest_framework import viewsets from django.http import JsonResponse from django.views.generic import View # Create your views here.
class get_post(View):
def post(self, request):
if request.method == 'POST':
 JsonResponse({"response": 'got post request'}, safe=False) 

근데 장고에서 에러가 그렇게 나오네요.

Internal Server Error: /api/chat/ Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/django/core/handlers/exception.py", line
47, in inner
response = get_response(request)
File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 188,
in _get_response
self.check_response(response, callback)
File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 309,
in check_response
raise ValueError( ValueError: The view chat.views.views.get_post didn't return an HttpResponse object. It returned None instead. [26/Oct/2022 17:06:51] "POST /api/chat/ HTTP/1.1" 500 60946 

POST 요청은 정상적으로 동작하고 있다고 생각합니다만, Django 코드가 잘못되어 있습니다.

그래서 제 질문은..

  1. 이 오류를 수정하고 해결하는 방법
  2. JS에서 Axios를 호출하면 내부 ‘.’에 응답이 있으므로 이 변수에 도달하는 데이터는 무엇입니까?이 데이터를 Response() 메서드 또는 JsonResponse() 메서드와 같이 반환해야 합니까?


질문에 대한 답변



뷰에 리턴만 추가…다음과 같습니다.

class get_post(View):
def post(self, request):
if request.method == 'POST':
 return JsonResponse({"response": 'got post request'}, safe=False) 

이 오류는 포스트 함수가 모든 것을 반환해야 한다고 불평하기 때문입니다.

두 번째 질문은 API를 다루고 있기 때문에 JsonResponse를 반환해야 합니다.