我刚刚设置了 Django 和 Dajaxice,但在仔细检查了 Django 设置和 Dajaxice 的文档后,我无法让它工作。
在此处对堆栈溢出进行了一些研究后,我发现的唯一一件事是确保我的 urls.py 中有 dajaxice_autodiscover(),我这样做了。这是我的 TimeBlendApp 中的 ajax.py:
from django.utils import simplejson
from dajaxice.decorators import dajaxice_register
@dajaxice_register
def sayhello(request):
return simplejson.dumps({'message':'Hello World'})
和我的html页面
{% load dajaxice_templatetags %}
<html>
<head>
<script type="text/javascript">
function my_js_callback(data){
alert(data.message);
}
</script>
<title>My base template</title>
{% dajaxice_js_import %}
</head>
<body>
<button onclick="Dajaxice.TimeBlendApp.sayhello(my_js_callback);">Click me</button>
</body>
</html>
我得到的错误是
FunctionNotCallableError at /dajaxice/TimeBlendApp.sayhello/
TimeBlendApp.sayhello
Request Method: GET
Request URL: http://127.0.0.1:8000/dajaxice/TimeBlendApp.sayhello/
Django Version: 1.5.1
Exception Type: FunctionNotCallableError
Exception Value:
TimeBlendApp.sayhello
Exception Location: C:\Python27\lib\site-packages\dajaxice\views.py in dispatch, line 60