Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Dajax不工作了_Django_Django Templates_Dajaxice_Dajax - Fatal编程技术网

Django Dajax不工作了

Django Dajax不工作了,django,django-templates,dajaxice,dajax,Django,Django Templates,Dajaxice,Dajax,Dajax不工作,我不明白为什么。我正在使用Django 1.7 我的ajax.py文件如下所示: from dajax.core import Dajax from dajaxice.decorators import dajaxice_register @dajaxice_register def jmc_foundation_tower_number(request, option): print("It works!") 我的模板调用如下所示: <div class=

Dajax不工作,我不明白为什么。我正在使用Django 1.7

我的ajax.py文件如下所示:

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

@dajaxice_register
def jmc_foundation_tower_number(request, option):

    print("It works!")
我的模板调用如下所示:

<div class='col-lg-3'>
  <select id='id_tower_number' name='tower_number' onchange="Dajaxice.core.views.jmc_foundation_tower_number(Dajax.process, {'option':$this.value})" onclick="Dajaxice.core.views.jmc_foundation_tower_number(Dajax.process, {'option':$this.value})" class='form-control'>
       {% for tower in towers %}
          <option value='{{ tower }}'>{{ tower }}</option>
       {% endfor %}
   </select>
</div>
from django.conf.urls import patterns, include, url
from django.contrib import admin

from dajaxice.core import dajaxice_autodiscover, dajaxice_config
dajaxice_autodiscover()


urlpatterns = patterns('',
    url(r'^index$', 'core.views.index', name='index'),

    url(r'^admin/', include(admin.site.urls)),
    url(dajaxice_config.dajaxice_url, include('dajaxice.urls')),

)

显然,使用onclick之类的函数时,带下划线(“u”)的javascript函数名不起作用。最好使用somefunction()之类的函数,而不是某个函数()来让Dajax工作。

下面是一个使用Dajax创建Helloworld的示例

型号。py:

 from django.db import models
 from dajax.core import Dajax
 from dajaxice.decorators import dajaxice_register
 @dajaxice_register
 def say_hello(request,value):
    dajax = Dajax()
    dajax.alert(value)
    return dajax.json()
urlpatterns = patterns('',
    # Examples:
    url(r'^$', 'server.views.index', name='index'),
 <html>
    <script>
      function print_helloworld(){
                var value = Dajaxice.server.models.say_hello(Dajax.process,{'value':'Hello World!'});
            }
    </script>
    <body>
       <button id='mybtn' class='btn btn-primary' onclick='print_helloworld()'>Hello World</button>
    </body>
 </html>
url.py:

 from django.db import models
 from dajax.core import Dajax
 from dajaxice.decorators import dajaxice_register
 @dajaxice_register
 def say_hello(request,value):
    dajax = Dajax()
    dajax.alert(value)
    return dajax.json()
urlpatterns = patterns('',
    # Examples:
    url(r'^$', 'server.views.index', name='index'),
 <html>
    <script>
      function print_helloworld(){
                var value = Dajaxice.server.models.say_hello(Dajax.process,{'value':'Hello World!'});
            }
    </script>
    <body>
       <button id='mybtn' class='btn btn-primary' onclick='print_helloworld()'>Hello World</button>
    </body>
 </html>
其中server.views.index中的“server”是项目中的应用程序名称

在index.html文件中,您必须使用jquery函数调用此dajax请求,如下所示 index.html:

 from django.db import models
 from dajax.core import Dajax
 from dajaxice.decorators import dajaxice_register
 @dajaxice_register
 def say_hello(request,value):
    dajax = Dajax()
    dajax.alert(value)
    return dajax.json()
urlpatterns = patterns('',
    # Examples:
    url(r'^$', 'server.views.index', name='index'),
 <html>
    <script>
      function print_helloworld(){
                var value = Dajaxice.server.models.say_hello(Dajax.process,{'value':'Hello World!'});
            }
    </script>
    <body>
       <button id='mybtn' class='btn btn-primary' onclick='print_helloworld()'>Hello World</button>
    </body>
 </html>

函数print_helloworld(){
var value=Dajaxice.server.models.say_hello(Dajax.process,{'value':'helloworld!');
}
你好,世界

如果需要从公共ip访问索引文件,则必须在按钮之前添加{%csrf_token%}标记

我应该使用django-dajax还是django-dajaxice?

一句话,没有。我4年前创建了这些项目,作为一个很酷的工具 为了解决我当时遇到的一个具体问题

现在使用这些项目是个坏主意。 (...) 如果你想使用这个项目,你可能错了。你应该 停止将您的界面与后端耦合,或者。。。从长远来看 它会在你脸上爆炸