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,))
Спасибо, что прочитали. Любой совет, который вы можете дать, будет оценен по достоинству. Эта проблема действительно поставила меня в тупик, и мои поиски не дали мне ответа.