Django REST API: Как ответить на POST запрос?

Я хочу отправить POST запрос с помощью axios(VueJS) и когда Django сервер получил POST запрос, я хочу получить обратно сообщение запроса. Я пробовал делать функции, когда получаю POST запрос на Django сервере и затем возвращаю 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)

но ошибка говорит так в django

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. Когда я вызываю axios в JS, внутри '.then' мы получаем ответ, так какие данные приходят в эту переменную? Должен ли я вернуть эти данные методом Response() или JsonResponse()?
  3. просто добавьте возврат в представлении... вот так:

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

    потому что ошибка жалуется, что функция post должна возвращать что угодно.

    для второго вопроса вам нужно вернуть JsonResponse, потому что вы имеете дело с API.

    Вернуться на верх