I have a form and want to send data to server via AJAX:
$('#edit_form').submit(function () {
var url = "/edit/";
/*$("#edit_form :input").prop("disabled", true);*/
$.post(url, $(this).serialize())
.done(function (data) {
$('body').html(data);
});
});
My view:
def edit_main_page(request):
try:
person = Person.objects.first()
except ObjectDoesNotExist:
person = None
if request.method == 'POST':
form = MainPageForm(request.POST, instance=person)
if form.is_valid():
args={}
args['person']=form.save()
if request.is_ajax():
html = render_to_string('index_ajax.html', args)
return HttpResponse(html)
else:
return redirect(reverse('home'))
else:
form = MainPageForm(instance=person)
return render(request, 'edit.html', {'form': form})
When debuging, firs time I submit form then request.is_ajax() returns False, then I back to that page and submit again it can be True. Debuging my script, I see that ajax request is executed. While debuggin, when I submit form several times, request.is_ajax() can be 4 times False and one time True