AssertionError at /wel/ Ожидалось, что из представления будет возвращен `Response`, `HttpResponse` или `HttpStreamingResponse`, но получен `<класс 'NoneTyp
Я пытаюсь создать api, используя django rest framework, но столкнулся с вышеупомянутой проблемой
код моего models.py
from django.db import models
class React(models.Model):
name=models.CharField(max_length=20)
details=models.CharField(max_length=500)
и мой код views.py
from django.shortcuts import render
from rest_framework.views import APIView
from . models import *
from rest_framework.response import Response
from . serializer import *
class ReactView(APIView):
serializer_class = ReactSerializer
def get(self,request):
for detail in React.objects.all():
detail = [{'name':detail.name,'detail':detail.detail}]
return Response(detail)
def post(self,request):
serializer=ReactSerializer(data=request.data)
if serializer.is_valid(raise_exception = True):
serializer.save()
Если React.objects.all()
пуст, метод get
вернет None
и будет выдана эта ошибка. Просто добавьте к этому методу return Response({}, status.HTTP_204_NO_CONTENT)
, или что-нибудь, что имеет смысл для вашего приложения.
from rest_framework import status
class ReactView(APIView):
serializer_class = ReactSerializer
def get(self,request):
for detail in React.objects.all():
detail = [{'name':detail.name,'detail':detail.detail}]
return Response(detail)
return Response({}, status.HTTP_204_NO_CONTENT)