1
我正在使用Boostrap模式淡化窗口呈現Django窗體來更新我的數據庫記錄。而且,如果用戶打開了「更新」窗口並且沒有更改任何內容,我無法重新加載頁面。這將是更容易,如果你看一下下面的代碼,讓我的想法:Django - 如何在不刷新頁面的情況下保持同一頁面?
def updateTask(request, task_id):
#cur_usr_sale_point = PersonUnique.objects.filter(employees__employeeuser__auth_user = request.user.id).values_list('agreementemployees__agreement_unique__sale_point_id',flat=True)
selected_task = Tasks.objects.get(id=task_id)
task_form = TaskForm(instance=selected_task)
taskTable = Tasks.objects.all()
if request.method == 'POST':
task_form = TaskForm(request.POST,instance=selected_task)
if task_form.has_changed():
if task_form.is_valid():
# inside your model instance add each field with the wanted value for it
task_form.save();
return HttpResponseRedirect('/task_list/')
else: # The user did not change any data but I still tell Django to
#reload my page, thus wasting my time.
return HttpResponseRedirect('/task_list/')
return render_to_response('task_management/task_list.html',{'createTask_form':task_form, 'task_id': task_id, 'taskTable': taskTable},context_instance=RequestContext(request))
的問題是,有沒有辦法告訴Django更改URL(喜歡它重定向後會發生),但不加載第二次使用相同數據的同一頁?
不,我不這麼認爲。一旦'request'發送給Django,它就必須返回一個'response'。你可以在按鈕上點擊一些AJAX來做到這一點。編寫一個AJAX方法來檢查當前表單數據是否與保存的數據不同。只有這樣,才能提交完整的表格。 –
@DanRussell,你能否提供這個JQuery-Ajax函數結構的最短樣本,以回答這個問題?我對Ajax幾乎沒有經驗,儘管我知道這個理論,但我不知道在實踐中這應該如何。即使朝正確的方向踢球,我也會感激 –