【发布时间】:2023-03-14 08:26:01
【问题描述】:
我正在尝试在我的网站中实现 Ajax 功能。这似乎是一个比较常见的问题,但我在网上找到的所有解决方案都很简单,比如忘记了教程中的某些内容。错误消息出现在 JavaScript 控制台中。
我正在尝试学习本教程:http://django-dajaxice.readthedocs.org/en/latest/installation.html
我的行动:
我使用pip install django_dajaxice 进行安装
我将教程中的settings.py 和urls.py 代码复制粘贴到我自己的代码中:
from dajaxice.core import dajaxice_autodiscover, dajaxice_config
dajaxice_autodiscover()
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns = patterns('',
# AJAX
url(dajaxice_config.dajaxice_url, include('dajaxice.urls')),
)
urlpatterns += staticfiles_urlpatterns()
和
STATICFILES_FINDERS = ( ... ) # Exact copy paste from tutorial
TEMPLATE_LOADERS = ( ... ) # Exact copy paste from tutorial
TEMPLATE_CONTEXT_PROCESSORS = ( ... ) # Exact copy paste from tutorial
我在 base.html 中包含了模板标签,实际的 html 文件继承自该标签
然后快速入门:http://django-dajaxice.readthedocs.org/en/latest/quickstart.html
我创建了 content/ajax.py(内容是我的应用程序)。里面的代码很简单:
from dajax.core import Dajax
from content import models
from dajaxice.decorators import dajaxice_register
@dajaxice_register
def fav(request):
dajax = Dajax()
return dajax.json()
最后是实例化 AJAX 的 JS 和 HTML 代码:
<script type="text/javascript" src="{{ STATIC_URL }}dajaxice/dajaxice.core.js"></script>
function js_callback(data) {
Dajax.process(data);
alert(data.message);
}
<a onClick="Dajaxice.content.fav(js_callback);">Favorite</a>
【问题讨论】:
-
已解决:我需要包含一个 return false;在 onClick 调用 JS 函数之后。这没有包含在文档中...
标签: javascript python ajax django