Django rest api удаление данных из базы данных

Когда я обращаюсь к данным с помощью django rest api, они удаляются. Getall вроде бы работает, но просмотр деталей или обновление удаляет данные. При создании я получаю сообщение "201 Created", но информация не сохраняется в базе данных. Я использую django sql_lite db и даже с суперпользователем она все равно удаляется.

Я проверил свои сериализаторы, модели и представления на наличие ошибок. Я должен создавать данные непосредственно в БД. Я проверил миграции, чтобы убедиться, что они актуальны.

views.py

from django.shortcuts import render
from rest_framework import generics
from .serializers import RoomListSerializer, RoomDetailSerializer
from .models import Room

class RoomListAPIView(generics.ListAPIView):
    queryset = Room.objects.all()
    serializer_class = RoomListSerializer

class RoomRetrieveAPIView(generics.RetrieveAPIView):
    lookup_field = "id"
    queryset = Room.objects.all()
    serializer_class = RoomDetailSerializer

class RoomCreateAPIView(generics.CreateAPIView):
    queryset = Room.objects.all()
    print(queryset)
    serializer_class = RoomDetailSerializer

class RoomRetrieveUpdateAPIView(generics.RetrieveUpdateAPIView):
    lookup_field = "id"
    queryset = Room.objects.all()
    serializer_class = RoomDetailSerializer

class RoomDestroyAPIView(generics.DestroyAPIView):
    lookup_field = "id"
    queryset = Room.objects.all()

models.py

from django.db import models

class Room(models.Model):
    room_name = models.CharField(max_length=200, blank=False)
    description = models.TextField(blank=True)
    width = models.CharField(blank=False, default="5", max_length=10)
    length = models.CharField(blank=False, default="5", max_length=10)

    def __str__(self):
        return f"{self.room_name}: {self.width} by {self.length}"

serializers.py

from rest_framework import serializers
from .models import Room
from rest_framework.reverse import reverse

class RoomListSerializer(serializers.ModelSerializer):
    absolute = serializers.SerializerMethodField()

    class Meta:
        model = Room
        fields = [
            'id',
            'room_name',
            'description',
            'absolute',
        ]

    def get_absolute(self, obj):
        return reverse('room_detail', args=(obj.pk,))

class RoomDetailSerializer(serializers.ModelSerializer):
    update = serializers.SerializerMethodField()

    class Meta:
        model = Room
        fields = [
            'id',
            'room_name',
            'description',
            'width',
            'length',
            'update',
            'delete',
        ]

    def get_update(self, obj):
        return reverse('room_update', args=(obj.pk,))
    
    def get_delete(self, obj):
        return reverse('room_delete', args=(obj.pk,))

Спасибо, что прочитали. Любой совет, который вы можете дать, будет оценен по достоинству. Эта проблема действительно поставила меня в тупик, и мои поиски не дали мне ответа.

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