如何用django1.3做ajax或jquery

时间:2011-09-28 12:40:46

标签: ajax django jquery python-2.7

我是django框架的新手,也是web开发和python的新手。目前我正在尝试在我的项目中实现ajax。我找不到任何工作样本。我需要帮助将 ajax jquery 放在 django1.3 项目中。

现在我正在尝试使用dojango'app实现ajax。我成功安装并尝试this tutorial

urls.py:

(r'^dojango/', include('dojango.urls')),
(r'^simple/', 'views.simple'),
(r'^simple-ajax-set/', 'views.simple_ajax_set'),

views.py:

from django.shortcuts import render_to_response
from dojango.decorators import json_response
@expect_post_request
@json_response
def simple_ajax_set(request):
    ret = {}
    firstname = request.POST['firstname']
    surname = request.POST['surname']
    if len(surname)<3:
        ret['error'] = 'Surname is too short.'
        ret['success'] = False
    if ret['success']:
        # Store the data here
        pass
    return ret

simple.html

{% extends "dojango/base.html" %} 
{% block dojango_page_title %}Simple AJAX with dojango{% endblock %}
{% block dojango_header_extra %}
<script type="text/javascript">
function userFormSubmit(){
 var form = dojo.byId("userForm");
 dojo.xhrPost({url:form.action,
  handleAs:"json",
  content:{surname:form.surname.value,
   firstname:form.firstname.value
  },
  load:function(response, ioArgs){
   if (response.success){
    dojo.byId("info").innerHTML = "Submitted successfully";
   } else {
    dojo.byId("info").innerHTML = "Error: "+response.error;
   }
  },
  error:function(data){ // This happens on a 500 error or alikes.
   dojo.byId("info").innerHTML = "Error sending data.";
  }
 });
}
 </script>

{% endblock %}

{% block dojango_content %}
 <form id="userForm" onsubmit="userFormSubmit(); return false;" action="/simple-ajax-set/">
  First name: <input id="firstname" /><br />
  Surname: <input id="surname" /><br />
  <input type="submit" value="Submit" /> <span id="info"></span>
 </form>
{% endblock %}

当我跑步时,我得到了异常

NameError at /simple-ajax-set/
name 'expect_post_request' is not defined

所以我在上面的教程的第一部分中更改了我的代码,我得到了以下异常

 'MultiValueDictKeyError at /simple-ajax-set/' , "Key 'firstname' not found in <QueryDict: {}>" when click on the submit button at simple.html.

请帮我找出问题沙还分享一些链接或代码,其中包含与django1.3一起使用的ajax / jquery。和python 2.7,

任何人都可以建议为django1.3运行hello world ajax或jquery示例吗?

1 个答案:

答案 0 :(得分:0)

“纯粹的”jQuery和django here。当我在你的位置时,这让我很开心。祝你好运!