Невозможно сделать пример работы с dajax - FunctionNotCallableError
Я установил dajaxice и dajax, как упоминалось в документации. Я попробовал dajaxice, и это пример alert(), и это сработало. Затем я попробовал Дайакс. Я бы хотел, чтобы на моем сайте работало множество примеров. Pokervalue - это имя проекта, а турнир - имя приложения.Установите Dajax:
$ pip install django_dajax
прошло нормально Добавил dajax в настройки -> INSTALLED_APPS
'dajax',
Включил этот файл.
Пример умножения: ajax.py находится в моей папке приложения.
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. Я гуглил, и это случается, когда коллективистский не был запущен. Так что я запускаю это снова.
./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
В соответствии с этим, мне не хватает dajaxice_autodiscover(). Но у меня есть dajaxice_autodiscover () в моей основной папке приложений, а также в папке турнирных приложений в файле urls.py.