【发布时间】:2015-01-18 23:08:42
【问题描述】:
我有一个 Django 项目,我正在尝试在其上实现 ajax。这个想法是在数据库中有一个警报列表(每 5 秒左右外部更新一次)。
由于数据库是自动更新的,我想要实现的是一个页面元素,它每 10 秒左右刷新一次以显示新信息(而不是刷新整个页面)。这已经适用于页面刷新或元刷新(eww ..)
这是我到目前为止开始的内容,我参考了以下 Stackoverflow 问题,我曾经尝试帮助我。
Refresh a div to shows new rating in Django using JQuery and AJAX
Refresh a div in Django using JQuery and AJAX
我这几天一直在兜圈子,没有任何进展,非常感谢任何帮助。
index.html
<div id="right">
{% include 'alarmviewer/alarms.html' %}
</div>
alarms.html
Theres alot more in this one, but I didn't include it as it didn't seem necessary. It works without the ajax.
<div class="alarmsheader">.....</div>
urls.py
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^alarms/$', views.alarms, name='alarms'),
)
views.py
def alarms(request):
latest_alarm_list = ActiveAlarmsSimple.objects.order_by('severity')[:1000]
active_alarm_list = ActiveAlarmsCount.objects.order_by('-active_alarms')[:1]
return render_to_response('alarmviewer/alarms.html', {'latest_alarm_list': latest_alarm_list,'active_alarm_list': active_alarm_list,})
script.js
function refresh() {
$.ajax({
url: "{% url 'alarmviewer:alarms' %}",
success: function(data) {
$('#right').html(data);
}
});
};
$(document).ready(function ($) {
refresh();
var int = setInterval("refresh()", 3000);
只是一个注释。在没有实现 ajax 的情况下,这一切都可以正常工作。手动或使用元标记每 5 秒刷新一次页面。我只是在运行服务器时收到错误
[2015 年 1 月 19 日 11:38:22]“GET /alarmviewer/%7B%%20url%20%27alarmviewer:logical%27%20%%7D HTTP/1.1”404 2936
我认为这意味着我的views.py 或我的Urls.py 有问题,因为它似乎无法找到它应该刷新的alarms.html 页面。
感谢您的帮助!
【问题讨论】:
-
将“alarms/$”直接放入javascript会发生什么?
-
你为什么使用“{% url 'alarmviewer:alarms' %}”而不是“{% url 'alarms' %}”?
-
ReferenceError: 未定义警报
-
你的应用里面有那个url文件吗?
-
我之前曾尝试过,结果相同。会再试一次