不能使dajax示例make work - FunctionNotCallableError

时间:2014-09-01 14:31:45

标签: django dajaxice dajax

我安装了dajaxice和dajax作为提到的文档。我尝试了dajaxice,它是alert()示例并且它有效。然后我尝试了dajax。我想在我的网站上做多个示例工作。 Pokervalue是项目名称,锦标赛是应用程序名称。 安装dajax:

$ pip install django_dajax

很好 在设置中添加了dajax - > INSTALLED_APPS

'dajax',

包括this file
乘法示例: ajax.py在我的app文件夹中。

import json
from dajaxice.decorators import dajaxice_register
from dajax.core import Dajax

@dajaxice_register
def multiply(request, a, b):
    dajax = Dajax()
    result = int(a) * int(b)
    dajax.assign('#result','value',str(result))
    return dajax.json()

这是我的模板文件的一部分:

<form class="form-inline" action="#">
<input type="text" value="5" id="a"> x
<input type="text" value="6" id="b"> =
<input type="text" value="" id="result">
<input type="button" value="Multiply!" onclick="calculate();">
</form>

,这是<head>

<script type="text/javascript">
function calculate(){
    Dajaxice.tournament.multiply(Dajax.process,{'a':$('#a').val(),'b':$('#b').val()})
}
</script>

由于dajaxice正在运行,我认为dajax存在问题。我错过了什么/不明白。


编辑1: 在我的runserver中它说:

[01/Sep/2014 14:48:17] "POST /dajaxice/tournament.multiply/ HTTP/1.1" 200 62
[01/Sep/2014 14:48:17] "POST /dajaxice/tournament.multiply/ HTTP/1.1" 200 62
[01/Sep/2014 14:48:21] "POST /dajaxice/tournament.multiply/ HTTP/1.1" 200 62
[01/Sep/2014 14:57:18] "POST /dajaxice/tournament.multiply/ HTTP/1.1" 200 62

所以我尝试加载/dajaxice/tournament.multiply/。我得到FunctionNotCallableError。我用Google搜索,当没有运行collecstatic时它就会发生。所以我再次运行它。

./manage.py collectstatic

You have requested to collect static files at the destination
location as specified in your settings:

    /var/www/django/pokervalue/wsgi/static

This will overwrite existing files!
Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel: yes
/usr/local/lib/python2.7/dist-packages/dajax/core.py:1: DeprecationWarning: django.utils.simplejson is deprecated; use json instead.
  from django.utils import simplejson as json

WARNING:py.warnings:/usr/local/lib/python2.7/dist-packages/dajax/core.py:1: DeprecationWarning: django.utils.simplejson is deprecated; use json instead.
  from django.utils import simplejson as json

Copying '/tmp/tmphIfJ7X'

1 static file copied to '/var/www/django/pokervalue/wsgi/static', 234 unmodified.

但它没有帮助,我仍然得到FunctionNotCallableError。


编辑2
根据{{​​3}},我缺少dajaxice_autodiscover()。但我在urls.py文件中的主应用程序文件夹和锦标赛app文件夹中都有dajaxice_autodiscover()。

0 个答案:

没有答案