我刚刚设置了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
答案 0 :(得分:2)
你必须跑
python manage.py collectstatic
每次更改或添加dajax / dajaxice函数。因此,dajaxice可以在静态目录中创建自己的javascript库。