AJAX和DJANGO组成

use*_*528 6 javascript python django ajax jquery

我是Ajax和Django的新手.为了简化问题,假设我有一个隐藏的表单和两个对象,我要求用户单击对象的某些位置.每次点击都会填写表单的一部分.我希望每个对象都填写一次表单.总共两次.当表单填写第一个主题时,我想通过Ajax将表单发送到服务器,而不刷新页面,并允许为第二个对象重新填充表单.但是,出于某种原因,我无法通过ajax发送表单.

这是我的代码:index.html:

<html>
<body>
<script src="{{ STATIC_URL }}prototype.js"></script>
<script src="{{ STATIC_URL }}jquery.js"></script>
<script>

  objectID= 1;
  num_obj = {{num_obj}}

  function ajax_post(){
    $('#inputform').submit(function() {  
        $.ajax({ 
            type: 'POST',
            url: '/index/',
            data: $(this).serialize(),
            success: function(data){alert(data)}

         }); // end new Ajax.Request
    });
  }


 function onDocumentMouseDown( event ) {
        ....do stuff
        if (objectID < num_obj){
           ajax_post()
           }
        if (objectID == num_obj){ 
            $("form").submit();}
        objectID ++;
        $("form").clearForm();
        document.forms[0].ObjectID.value = objectID;
        }
  </script>
  <form action="" method="post" id="inputform">
      <div id="ajaxwrapper">
       {% csrf_token %}
       <table>
        {{ form.as_table }}
       </table>
     </div>
  </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我的view.py:

from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import *
from firstapp.forms import PracForm3

num_obj=2

def index(request):
   Obj.objects.all().delete()
   if request.method == 'POST':
    form = PracForm3(request.POST)
    print "\n\n\n\n\n"
    if request.is_ajax():
      print "yaaaaay AJAX"
      print request.POST
    else:
      print "noooooo"
    print "\n\n\n\n\n"
    if form.is_valid():
      cd = form.cleaned_data
      .....
      if cd['ObjectID'] == num_obj:
        return HttpResponseRedirect('/submit')
   else:
     form = PracForm3()
     dic = {'form': form, 'num_obj': num_obj, ...}
   return render_to_response('index.html', dic, context_instance=RequestContext(request))  
Run Code Online (Sandbox Code Playgroud)

我的urls.py:

from django.conf.urls import patterns, include, url
from firstapp.views import index, submit
from django.conf import settings

urlpatterns = patterns('',
('^index$', index),
('^submit$', submit),
)
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我的Ajax不起作用任何人都知道我做错了什么?

Jes*_*ame 0

/index/您在 ajax 调用中请求,但您的模式匹配/index