我正在尝试创建一个在线类,并希望遍历这些类的列表,以查看他/她是否已注册
问题是如果列表为空,它将返回一个错误
我使用的是django和django-restframework
以下是我的代码
@api_view(['POST'])
@permission_classes([IsAuthenticated,])
def createOrderForOnlineClasses(request):
user = request.user
data = request.data
Class = OnlineClass.objects.get(id= data["classId"])
orderCred = {
'pin' : 'somepin',
'amount' : int(Class.totalPrice),
'callback' : 'http://localhost:3000/verify/',
}
for i in user.userprofile.onlineClass.all():
if i == Class:
return Response({"details": "allready registered"}, status=status.HTTP_400_BAD_REQUEST)
else:
try:
response = requests.post("URL_TO_SOMEWHERE", data=orderCred)
if response.status_code == 200 and not response.text.replace('-',"").isdigit():
registeredClass = RegisterStudentForOnlineClass.objects.create(
user=user,
totalPrice = int(Class.totalPrice),
transId = response.text,
onlineClassName= Class
)
serializer = RegisterForClassSerializer(registeredClass , many=False)
return Response(serializer.data)
else:
return Response({"details": ""} , status= status.HTTP_400_BAD_REQUEST)
except Exception as e:
return Response({"details": e})下面是返回的错误
Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>`谢谢您:)
发布于 2021-08-13 14:26:34
当你调用for i in user.userprofile.onlineClass.all()时,如果它是空的,它会简单地传递循环。您的问题实际上是,对于user.userprofile.onlineClass.all()为空的场景,您只需要一个默认响应。
只需将默认的预期响应放在for循环之后
https://stackoverflow.com/questions/68773942
复制相似问题