簡體   English   中英

Django無論如何響應代碼500

[英]Django Responds code 500 no matter what

我在Django中有一個方法,可以從移動應用程序獲取POST數據,而我所做的就是保存並發送響應。 問題是盡管數據已保存,但是無論應用程序收到什么響應代碼500,它都可以保存。

 <Response [500]>

碼:

@csrf_exempt 
def store_recordings(request):
    if request.method == 'POST':
        print "In POST",request.POST
        driverName = request.POST['driverName']
        driverMobileNum = request.POST['driverMobileNum']
        customerMobileNum = request.POST['customerMobileNum']
        salesOrderNo = request.POST['salesOrderNo']
        callRecord = request.POST['callRecord']
        latitude = request.POST['latitude']
        longitude = request.POST['longitude']
        callStart = request.POST['callStart']
        callEnd = request.POST['callEnd']
        callDuration = request.POST['callDuration']
        callType = request.POST['callType']
        driverrecording = DriverRecording(driverName=driverName,driverMobileNum=driverMobileNum,customerMobileNum=customerMobileNum,salesOrderNo=salesOrderNo,callRecord=callRecord,latitude=latitude,longitude=longitude,callStart=callStart,callEnd=callEnd,callDuration=callDuration,callType=callType)
        save_or_not = driverrecording.save()
        driverexist = DriverNames.objects.all()
        new_driver_flag = False
        driverName_list = [each.driverName for each in driverexist] 
        driverName_list = list(set(driverName_list))
        if driverName in driverName_list:
            pass
        else:
            DriverNames(driverName=driverName,driverMobileNum=driverMobileNum).save()
        return HttpResponse(status=201)
    else:
        return HttpResponse(status=400)

我感到困惑是什么問題。
謝謝。

幾乎可以肯定,這些字段中的一個或多個沒有被發送,因此您將收到KeyError。 如果將DEBUG設置為True,則會看到回溯。

您應該使用Django的表單框架,而不是直接訪問POST數據。 這將驗證輸入並允許您顯示任何錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM