尝试在我的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);">


您需要将其从上面更改为“民意调查”或“示例”……无论运行该代码的应用程序的名称是什么。

10-06 00:16