下面你举的安装和快速入门的引用,而我也与dajaxice例子挣扎。我的错误类似,但我看到“Dajaxice.example not defined。”。
我们调用主django项目myproj
和安装的应用程序,其中ajax.py文件位于myproj/myapp
。这两个部分似乎得到它的工作对我来说是:含def sayhello(request)
广场ajax.py文件在正确的目录,并使用相应的正确路径,SayHello的功能。
- 将其放置在一个目录中settings.INSTALLED_APPS列出的应用程序之一
- 如果安装的应用程序名称被列为
"myproj",
ajax的文件应该是myproj/ajax.py
,JS的参考应该是:Dajaxice.myproj.sayhello(my_js_callback)
- 如果您所安装的应用程序名称被列为
"myproj.subapp",
ajax的文件应该是myproj/myapp/ajax.py
,JS的参考应该是:Dajaxice.myproj.myapp.sayhello(my_js_callback)
[我用这一个]
- 记得把
{% dajaxice_js_import %}
模板<head>
节
注意:在我的示例中,“myapp”可以替换为“example”以匹配dajaxice示例代码。
正确设置collectstatic以在代码更新时生成新的/static/dajaxice/dajaxice.core.js文件。
- 我按照您引用的dajaxice readthedocs安装链接中列出的方向进行操作。
- 新增STATIC =“/静态/在settings.py文件
- 加入 'django.contrib.staticfiles' 到
INSTALLED_APPS
在settings.py文件
- 跑
python manage.py collectstatic
将所有文件的拉入/静态/目录。这包括产生文件/static/dajaxice/dajaxice.core.js
- 检查这个文件,你应该看到对象层次的SayHello的功能:
Dajaxice.myproj.sayhello
或Dajaxice.myproj.myapp.sayhello
。
此外,如果您是从http://www.dajaxproject.com/multiply/试图乘例如,更改function calculate()
您ajax.py
文件的位置匹配之一:
<script type="text/javascript" charset="utf-8">
function calculate(){
Dajaxice.myproj.myapp.multiply(Dajax.process,{'a':$('#a').val(),'b':$('#b').val()})
};
</script>
或
<script type="text/javascript" charset="utf-8">
function calculate(){
Dajaxice.myproj.multiply(Dajax.process,{'a':$('#a').val(),'b':$('#b').val()})
};
</script>
和在<head>
部分包含相应的dajax js文件:
<script src="/static/dajax/jquery.dajax.core.js"></script>
或
{% static "/static/dajax/jquery.dajax.core.js" %}
什么是你从Django的端返回? – 2013-02-17 07:59:55
Burhan,我该如何检查从Django端返回的内容? 在Django的功能应该被调用看起来像这样: @dajaxice_register 高清的SayHello(请求): 回报simplejson.dumps({“消息”:“你好世界”}) – 2013-02-17 09:07:05
你是如何运行代码,使用runserver?你有debug = True吗? – 2013-02-17 09:13:07