当我使用curl在终端上执行以下命令时
curl -X POST http://myuser:mypassword@myweb.com:8000/call/make-call/ -d "tutor=1&billed=1"我得到以下错误
AssertionError at /call/作出调用/期望从视图返回
Response、HttpResponse或HttpStreamingResponse,但收到了<type 'NoneType'>
我的views.py是
@api_view(['GET', 'POST'])
def startCall(request):
if request.method == 'POST':
serializer = startCallSerializer(data=request.DATA)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)我的serializer.py是
class startCallSerializer(serializers.ModelSerializer):
class Meta:
model = call
fields = ('tutor', 'billed', 'rate', 'opentok_sessionid')我的urls.py是
urlpatterns = patterns(
'api.views',
url(r'^call/make-call/$','startCall', name='startCall'),
)发布于 2014-09-05 11:50:14
该函数不会在"GET“请求中返回Response对象。也就是说,if request.method == 'POST'检查不通过。
@api_view(['GET', 'POST'])
def startCall(request):
if request.method == 'POST':
serializer = startCallSerializer(data=request.DATA)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
# Return Response instance if request method
# is not POST
return Response({'key': 'value'}, status=status.HTTP_200_OK)发布于 2018-01-30 12:54:37
只需加上
#Return this if request method is not POST
return Response(json.dumps({'key': 'value'},default=json_util.default))如果您在应用程序开发中没有内置错误代码。
我的完整代码:
@csrf_exempt
@api_view(['GET','POST'])
def uploadFiletotheYoutubeVideo(request):
if request.method == 'POST':
file_obj = request.FILES['file']#this is how Django accepts the files uploaded.
print('The name of the file received is ')
print(file_obj.name)
posteddata = request.data
print("the posted data is ")
print(posteddata)
response = {"uploadFiletotheYoutubeVideo" : "uploadFiletotheYoutubeVideo"}
return Response(json.dumps(response, default=json_util.default))
#Return this if request method is not POST
return Response(json.dumps({'key': 'value'},default=json_util.default))发布于 2020-02-13 17:16:19
像下面这样编辑视图应该有效
@api_view(['GET', 'POST'])
def startCall(request):
if request.method == 'POST':
serializer = startCallSerializer(data=request.data)
data={}
if serializer.is_valid():
datas = serializer.save()
data['tutor']=datas.tutor
data['billed']=datas.billed
data['rate']=datas.rate
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
return Response(data)https://stackoverflow.com/questions/23320058
复制相似问题