如何遍历一个空的python列表



我正在尝试创建一个在线类,并希望通过类的列表循环,看看他/她是否已注册

问题是如果列表为空,它将返回一个错误

我使用djangodjango-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'>`

谢谢你:)

当您调用for i in user.userprofile.onlineClass.all()并且它为空时,它将简单地传递循环。您的问题实际上是,对于user.userprofile.onlineClass.all()为空的场景,您只需要一个默认响应。

在for循环

后面放一个默认的预期响应

最新更新