簡體   English   中英

Ajax django POST請求提前結束

[英]Ajax django POST requests ends prematuraly

我有從網頁提交的數據。 我嘗試在插入DB之前在服務器端重新驗證數據。 由於某種原因,POST代碼沒有完全執行。 它通過datetime.date()到達驗證並返回。 我沒有收到任何錯誤或任何東西。

屏幕打印:

添加了新作業

預期的屏幕打印:

添加了新作業

測試2

在這里提交

以下代碼用於view.py:

def addStudent(request, assignment, studentID= -1):
         #Check if POST
         if request.method == 'POST':
                 errors = []
                 print "New assignment added"
                 #Verify exam date is future and end date is after start
                 if request.POST['startD'] <= datetime.date():
                         print "Error"
                         errors.append("Please verify date is in the future")
                 print "Test2"
                 if request.POST['endD'] < request.POST['startD']:
                         errors.append("Please verify end date>start date.")
                 print "Submit here"
                 return
     return render(request,.....)

以下是調用它的代碼:

    $.ajax({type: 'POST',
                  url:'/assignment/newassignment/{{university}}/',
                  data:{
                       csrfmiddlewaretoken:'{{ csrf_token }}',
                       studentName:$("#studentName").val(),
                       startD:$("#startDate").val(),
                       endD:$("#endDate").val()},
                  async:true});

免責聲明:由於用戶在頁面上進行了視覺操縱,因此該代碼不能為表單。 每個學生都要用ajax進行幾次調用。

更新 :嘗試了以下調試:

if request.POST['startD']:
                        print "date.today():"+str(date.today())
                        print "request:"+str(request.POST['startD'])
                        print "myDate:"+str(datetime.strptime(request.POST['startD'], "%Y-%m-%d"))

前2條語句已打印,而第三條則沒有

屏幕打印:

date.today():2016-03-24

要求:2016-03-30

重要提示 :from datetime導入datetime

我想您會收到服務器錯誤,因為您試圖將通過字符串( startD / endD )傳遞的值與日期進行比較。 您需要將它們轉換為比較之前的日期

start = request.POST.get('startD')
if start:
    start_date = datetime.strptime(request.POST.get('startD'), "%Y-%m-%d")
    if start_date <= datetime.date():

暫無
暫無

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

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