3

我刚刚设置了 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
4

1 回答 1

2

你必须跑

python manage.py collectstatic 

每次您更改或添加 dajax/dajaxice 函数时。因此 dajaxice 可以在静态目录中创建自己的 javascript 库。

于 2014-02-03T12:43:56.790 回答