尝试在我的Django项目中实现Dajax之后,我遇到了一个问题。
在Dajax网站的安装和使用说明中的某个时候,指示我这样在ajax.py中调用方法:
<button type="button" onclick="Dajaxice.MyProject.MyApp.say_hello(Dajax_process)">Dajax</button>
但是,当我尝试单击该按钮时,根本没有任何反应。它就像一个空按钮。
我仍在尝试弄清Dajax怎么会这样识别我的say_hello函数……但这可能就是Dajax的使用方式。
我有我的say_hello方法实现如下:
from dajaxice.decorators import dajaxice_register
from dajax.core import Dajax
@dajaxice_register
def say_hello(req):
print "DAJAX"
dajax = Dajax()
dajax.alert("Hello World!")
return dajax.json()
乍一看,我认为根本找不到该方法是有问题的。我仍然不是100%确定这是否是原因。但这可能是。
有人对我应该找的东西有什么建议吗?
我在页面上有所有说明:http://django-dajax.readthedocs.org/en/latest/installation.html#installing-dajax
谢谢,
大卫
最佳答案
目前我自己克服了这一障碍。
要确保以下几点:
下载并安装jquery,并将其放在可以调用的位置。我将其放在应用程序内的静态文件夹中:/my_site/example_app/static/js/jquery-2.0.3.js
您需要使用以下命令将其加载到HTML Head视图中:<script type="text/javascript" src="{{ STATIC_URL }}js/jquery-2.0.3.js"></script>
您还需要确保使用以下命令调用dajax jquery核心:<script type="text/javascript" src="{{ STATIC_URL }}dajax/jquery.dajax.core.js"></script>
接下来,在运行服务器之前进行测试运行
manage.py collectstatic
这将从dajax / dajaxice复制django所需的一切。我将它们都安装到了我的普通Python2.7库中,django从那里将它们拉出并将它们复制到所需的文件夹中。
这应该可以帮助您...我不是这里的专家,但是这些步骤有助于解决我的问题。
另外,如果您从Dajax网站复制代码,请不要忘记在onclick调用中更改应用程序根目录。
<input type="button" value="callback!" onclick="Dajaxice.*EXAMPLE-APP-NAME*.saybye(my_js_callback);">
您需要将其从上面更改为“民意调查”或“示例”……无论运行该代码的应用程序的名称是什么。