【发布时间】:2011-11-26 20:29:56
【问题描述】:
我是 django 框架的新手,也是 web 开发和 python 的新手。目前我正在尝试在我的项目中实现 ajax。我找不到任何工作样本。我需要将 ajax 或 jquery 放入 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