【发布时间】:2015-09-29 06:11:33
【问题描述】:
我是一个新的 Django 用户,遇到了一个问题。我想自动刷新我的 jQuery Datatables 数据,显示我的新数据库内容,而无需重新加载整个 html 页面(使用 ajax 请求)。我浏览了很多帖子,但没有找到我的graal...
这是我的 Django 模板.html:
{% block js %}
<script type="text/javascript" language="javascript" class="init">
$(document).ready(function(){
var oTable = $('#db_name').DataTable();
} );
setInterval(function () {
oTable.ajax.reload();
}, 2000 );
} );
</script>
{% endblock %}
我的views.py:
def db_update(request):
watch_files()
all_ = db.objects.all()
return render_to_response('supervision.html', {'all_fields': all_})
问题是每 2 秒显示一条错误消息“数据表警告:表 id=db_name - 无效 JSON 响应”。我认为这是正常的,因为没有 JSON。尽管有这个错误,但重新加载是有效的:如果我手动刷新 (F5),我的数据库中添加的所有新数据(函数 watch_files 在其中创建条目)都会很好地显示在我的页面中。 对我来说,理想的情况是获得透明的数据自动刷新,保留 Datatables 数组的当前排序/页面选项。
我也试过这个,试图通过 JSON,但没有成功:
$(document).ready(function() {
var oTable = $('#db_name').DataTable( {
ajax: {{obj_as_json}}
} );
setInterval(function () {
/* oTable.ajax.reload(); */
oTable.fnReloadAjax();
/* oTable.fnDraw(); */
}, 2000 );
} );
def db_update(request):
watch_files()
all_ = db.objects.all()
jsondata = serializers.serialize('json', all_)
return render_to_response('supervision.html', {
'obj_as_json':json.dumps(jsondata),
'all_fields': all_})
如果有人可以帮助我,那就太好了。 谢谢,克里斯托夫
【问题讨论】:
标签: javascript jquery ajax django datatables