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>
我的urls.py如下:
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')),
)
答案 0 :(得分:1)
django-dajax 和 django-dajaxice
我应该使用django-dajax还是django-dajaxice?
总之,不,我在4年前创建了这些项目作为一个很酷的工具 为了解决我当时遇到的一个具体问题。
这些天使用这些项目是一个坏主意。 (......) 如果你想使用这个项目,你可能错了。你应该 从长远来看,停止与你的后端或......的接口 它会爆炸在你的脸上。
答案 1 :(得分:0)
显然,使用下划线('_')的javascript函数名在使用像onclick这样的函数时不起作用。最好使用somefunction()而不是some_function()等函数来使Dajax工作。
答案 2 :(得分:0)
以下是使用dajax制作Helloworld的示例
<强> models.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()
<强> urls.py:强>
urlpatterns = patterns('',
# Examples:
url(r'^$', 'server.views.index', name='index'),
其中server.views.index中的“server”是项目中的应用程序名称
在index.html文件中,您必须使用jquery函数来调用此dajax请求,如下所示 的的index.html:强> <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>
如果您需要从公共IP访问索引文件,则必须在按钮之前添加{%csrf_token%}标记