我正在研究random machine example,但我遇到了麻烦。我根据以下两个页面安装了Dajax和Dajaxice:Dajax和Dajaxice。我的ajax.py文件如下所示:
import random
from dajax.core import Dajax
from dajaxice.decorators import dajaxice_register
@dajaxice_register
def randomize(request):
dajax = Dajax()
dajax.assign('#result','value',random.randint(1, 10))
return dajax.json()
这是我的views.py:
from django.shortcuts import render_to_response
from django.template import RequestContext
def dajax(request):
return render_to_response( 'dajax.html', context_instance=RequestContext(request) )
这是我的urls.py:
from django.conf.urls.defaults import patterns, include, url
from dajaxice.core import dajaxice_autodiscover
from dajaxice import urls
from django.conf import settings
from Dajax.myapp.views import dajax
dajaxice_autodiscover()
urlpatterns = patterns('',
(r'^%s/' % (settings.DAJAXICE_MEDIA_PREFIX), include('dajaxice.urls')),
(r'^dajax/$', dajax),
)
我的html表单标签如下所示:
<form>
<input type="text" name="result" value="" id="result">
<input type="button" name="rand" value="Let's Rand!" id="rand" onclick="Dajaxice.myapp.randomize(Dajax.process); return false;">
</form>
这是我的头标记的样子:
<head>
<title>My base template</title>
{% dajaxice_js_import %}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript" charset="UTF-8"></script>
<script src="{{ STATIC_URL }}js/jquery.dajax.core.js" type="text/javascript" charset="UTF-8"></script>
</head>
我在项目目录中的 init .py文件中添加了以下内容:
from myapp.ajax import randomize
另外值得注意的是,我的Django应用程序的名称是myapp。
在我的页面上,当我点击Let's Rand!时,页面转到http://localhost:8000/dajax/?result=2,文本输入框中没有显示任何值。我在Chromium中检查了控制台,没有任何错误。
我是否错误地安装了Dajax或Dajaxice,或者上面的代码是否有问题?
我的猜测是,因为我使用的是jQuery而不是Prototype,所以我需要做一些不同的事情。
感谢您的帮助!
答案 0 :(得分:2)
在调用Dajax之后,您的return false;
处理程序中需要onClick
。
答案 1 :(得分:1)
您需要确保您尝试导入ajak.py
文件的应用位于INSTALLED_APPS
中的settings.py
。
请参阅自动发现的来源:
http://docs.dajaxproject.com/dajaxice/_modules/dajaxice/core/Dajaxice.html
答案 2 :(得分:1)
将此内容放入views.py:
中from dajaxice.core import dajaxice_autodiscover
dajaxice_autodiscover()