Запрос Django rest framework post возвращает 200, но данные не сохраняются в базе данных

#django #django-rest-framework

Вопрос:

когда запрос post отправляется в api, api возвращает Ok в качестве ответа, но данные в базу данных не вставляются.

views.py

 
@api_view(['POST'])
def createTicketList(request):
    serializer = TicketListSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save()
        return Response(serializer.data)
    else:
        return Response(serializer.errors)
 

serializer.py

 
class TicketListSerializer(serializers.ModelSerializer):
    class Meta:
        model = TicketListTable
        fields = '__all__'

    def create(self, validated_data):
        return TicketListTable(**validated_data)
 

models.py

 
class TicketListTable(models.Model):
    ticketListName = models.CharField(max_length=50)
    ticketListCreated = models.DateTimeField()
    ticketListUpdates = models.DateTimeField()

    def __str__(self):
        return self.ticketListName

    class Meta:
        app_label = "backend"
        db_table = "TicketListTable"
 

api почтальона

postman api запрос на публикацию

Ответ №1:

Потому что вы не сохраняете TicketeListTable экземпляр в create функции сериализатора. Если вы удалите create функцию, экземпляр будет сохранен. В нем уже есть функция создания ModelSerializer .

https://www.cdrf.co/3.12/rest_framework.serializers/ModelSerializer.html#create