Django,Dajax和Javascript - onclick不调用python方法

时间:2013-09-29 01:20:31

标签: javascript python django dajaxice dajax

在尝试将Dajax实现到我的Django项目后,我遇到了一个问题。

在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

谢谢,  大卫

1 个答案:

答案 0 :(得分:1)

目前我自己跳过了这个障碍。

要确定一些事情:

  1. 下载并安装jquery,并将其放在可以调用的地方。我把它放在我的应用程序中的静态文件夹中:/my_site/example_app/static/js/jquery-2.0.3.js
  2. 您需要使用以下命令在HTML Head视图中加载:

    <script type="text/javascript" src="{{ STATIC_URL }}js/jquery-2.0.3.js"></script>

  3. 您还需要确保使用以下命令调用dajax jquery核心:

    <script type="text/javascript" src="{{ STATIC_URL }}dajax/jquery.dajax.core.js"></script>

  4. 接下来,在运行服务器以测试运行之前

    manage.py collectstatic

  5. 这将复制django需要的所有Dajax / Dajaxice。我将这两个安装到我的普通Python2.7库中,django从那里拉出它们并将它们复制到所需的文件夹。

  6. 这应该让你去...我在这里不是专家,但这些步骤有助于解决我的问题。

    另外,如果您从Dajax网站复制代码,请不要忘记在onclick调用中更改应用程序根目录....

        <input type="button" value="callback!" onclick="Dajaxice.*EXAMPLE-APP-NAME*.saybye(my_js_callback);">
    

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