Попытка вернуть объект массива DB в Django в представление

У меня что-то вроде работает. Я очень новичок в Django и Python. У меня есть следующее представление в папке api

from re import S
from django.shortcuts import render
from rest_framework import generics, status
from .serializers import CourseSerializer, CreateCourseSerializer
from .models import Course
from rest_framework.views import APIView
from rest_framework.response import Response
import logging
from django.core import serializers


logging.basicConfig(level=logging.WARNING)
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)


# Create your views here.


class CourseView(generics.ListAPIView):
    queryset = Course.objects.all()
    serializer_class = CourseSerializer

    SomeModel_json = serializers.serialize("json", Course.objects.all())

    logger.debug(SomeModel_json)

    def get(self, request, format=None):

        return Response(self.SomeModel_json, status=status.HTTP_201_CREATED)


class CreateCourseView(APIView):
    serializer_class = CreateCourseSerializer

    def post(self, request, format=None):
        if not self.request.session.exists(self.request.session.session_key):
            self.request.session.create()

        serializer = self.serializer_class(data=request.data)
        if serializer.is_valid():
            course_title = serializer.data.get('course_title')
            course_topic = serializer.data.get('course_topic')
            course_topic_about = serializer.data.get('course_topic_about')
            course_question = serializer.data.get('course_question')
            course_answer = serializer.data.get('course_answer')

            course = Course(course_title=course_title, course_topic=course_topic,
                            course_topic_about=course_topic_about, course_question=course_question, course_answer=course_answer)
            course.save()

            return Response(CourseSerializer(course).data, status=status.HTTP_201_CREATED)

        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

и имею следующее serializers.py в папке api

from rest_framework import serializers
from .models import Course


class CourseSerializer(serializers.ModelSerializer):
    class Meta:
        model = Course
        fields = (
            'id', 'course_title', 'course_topic', 'course_topic_about', 'course_question', 'course_answer', 'created_at', 'updated_at')


class CreateCourseSerializer(serializers.ModelSerializer):
    class Meta:
        model = Course
        fields = (
            'course_title', 'course_topic', 'course_topic_about', 'course_question', 'course_answer')

В папке api models.py находятся следующие файлы

from django.db import models

# Create your models here.


class Course(models.Model):
    course_title = models.CharField(max_length=255)
    course_topic = models.TextField(max_length=255)
    course_topic_about = models.TextField(max_length=255)
    course_question = models.TextField(max_length=255)
    course_answer = models.TextField(max_length=255)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

Это мой get взгляд

get view

Это мой post взгляд

post view

Теперь я не понимаю, почему представление get строится так

"[{\"model\": \"api.course\", \"pk\": 1, \"fields\": {\"course_title\": \"Understanding the weird parts of javascript\", \"course_topic\": \"Javascript Objects\", \"course_topic_about\": \"Everything in JavaScript acts like an object\", \"course_question\": \"In JavaScript what is not an object?\", \"course_answer\": \"Null and Undefined\", \"created_at\": \"2021-12-09T03:16:37.667Z\", \"updated_at\": \"2021-12-09T03:16:37.667Z\"}}, {\"model\": \"api.course\", \"pk\": 2, \"fields\": {\"course_title\": \"Understanding the weird parts of javascript\", \"course_topic\": \"test\", \"course_topic_about\": \"test\", \"course_question\": \"test\", \"course_answer\": \"test\", \"created_at\": \"2021-12-11T00:20:08.233Z\", \"updated_at\": \"2021-12-11T00:20:08.233Z\"}}, {\"model\": \"api.course\", \"pk\": 3, \"fields\": {\"course_title\": \"test\", \"course_topic\": \"test\", \"course_topic_about\": \"test\", \"course_question\": \"test\", \"course_answer\": \"test\", \"created_at\": \"2021-12-11T02:02:19.997Z\", \"updated_at\": \"2021-12-11T02:02:19.997Z\"}}]"

Есть ли способ сериализовать объект, чтобы он не был строковым. Я использую React во фронт-энде и, наверное, могу просто разобрать строку.

Но у меня есть ощущение, что я делаю что-то не так в Django python, чтобы получить такой результат, поскольку мой запрос post не строгирован, когда я получаю результат. Я не писал post view сам, я следовал учебнику, так что пока не понимаю каждую часть.

Любая помощь была бы замечательной

Заранее спасибо

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