【问题标题】:how to do ajax or jquery with django1.3如何用 django1.3 做 ajax 或 jquery
【发布时间】:2011-11-26 20:29:56
【问题描述】:

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

现在我正在尝试使用 dojango 的应用程序来实现 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.

请帮助我找出问题,并分享一些包含 ajax/jquery 的链接或代码,这些链接或代码适用于 django1.3。和python 2.7,

任何人都可以建议为 django1.3 工作一个 hello world ajax 或 jquery 示例吗?

【问题讨论】:

  • 当我尝试 firstname = request.POST.get('firstname') surname = request.POST.get('surname'),它返回文档内容:{}&& {"success": true },但是有消息“解析JSON文档时出错。文档可能格式不正确。”
  • 这个例子看起来你使用的是 Dojo 而不是 jQuery。
  • 是的@Mark Lavin,我使用了Dojango项目。
  • @Mark Lavin,我遇到了大问题,过去几周我正在尝试做 jquery 或 dojo 等。但我失败了。我的疑问是,如果我使用 Jquery,我该如何调用 python功能来自我的 Jquery 的现成功能(来自模板)。你能通过分享你的想法或任何链接来帮助我吗?我尝试了很多来自谷歌的链接,但我失败了。谢谢
  • 我建议在 Dajax 多多学习:dajaxproject.com

标签: ajax django jquery python-2.7


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-04
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多