使用来自 django 视图的数据刷新/重绘 jquery 数据表
Posted
技术标签:
【中文标题】使用来自 django 视图的数据刷新/重绘 jquery 数据表【英文标题】:Refresh/redraw jquery datatables with data from django view 【发布时间】:2017-01-20 20:08:56 【问题描述】:我使用 jquery DataTables 1.10.0 在表格上显示一些数据。这就是我加载数据的方式:
var layer_data = $("#layer_data").DataTable(
"scrollX": true,
"aaData":whole_array,
"iDisplayLength": 10
);
其中 whole_array 是一个数组数组,如:
[Array[7], Array[7], Array[7]
每个数组都有不同的值:
0:"<button id="1" class="btn btn-info btn-sm _edit_save_btn" style="margin-bottom:5px;width:68px; background-color:#a7a3a3;border-color:#a7a3a3">Edit</button></br><button id="fid__1" class="btn btn-info btn-sm _add_save_btn" data-toggle="modal" data-target="#add_geometry" data-fid="afghanistan_test.1" style="background-color:#a7a3a3; border-color:#a7a3a3;margin-bottom:5px;width:68px;">Geometry</button></br><button id="fid__cancel__1" class="btn btn-info btn-sm _cancel_btn" style="margin-bottom:5px;width:68px; background-color:#a7a3a3;border-color:#a7a3a3">Cancel</button>"
1:"Afghanistan"
2:"Badakhshan"
3:...
我想要做的是在单击按钮时重绘/刷新表格。我读到有一些方法可以用ajax requests 做到这一点,但我认为这不是我的情况,因为数据来自在页面加载时初始化的 django 视图。
【问题讨论】:
为什么不发出 ajax 请求来(重新)填充表格? #Sayse 部分数据来自 django 视图,其他一些(如 html 按钮)是使用 jquery 构建的。我将如何使用 ajax 重新填充表格? 【参考方案1】:您想使用 JSONReponseMixin 之类的东西并让您的视图只发送数据。
class MyView(JSONResponseMixin, AjaxResponseMixin , TemplateView):
def get_ajax(self, request, *args, **kwargs):
data = ['Country', 'Country']
return self.render_response(json.dumps(data))
当您从 jquery ajax 调用查看时,它只会发回数据并生成 html。
您也可以不执行 json 并让视图返回仅包含表格的 html 并替换页面中的 html。
【讨论】:
以上是关于使用来自 django 视图的数据刷新/重绘 jquery 数据表的主要内容,如果未能解决你的问题,请参考以下文章