我是一個新的Django用戶,遇到問題。我想獲得我的jQuery Datatables數據的自動刷新,顯示我的新數據庫內容而無需重新加載整個html頁面(使用ajax請求)。我瀏覽了不少帖子,但沒有找到我格拉爾...Django模板:如何自動刷新jQuery數據表?
這裏是我的Django template.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秒顯示一條錯誤消息「Datatables warning:table 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_})
如果有人可以幫助我,這將是巨大的。 Thks,Christophe
[使用創建一個JSON響應的可能重複Django和Python](http://stackoverflow.com/questions/2428092/creating-a-json-response-using-django-and-python) – madzohan