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几乎没有经验,尽管我知道这个理论,但我不知道在实践中这应该如何。即使朝正确的方向踢球,我也会感激 –