[英]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.