现在这有点棘手。
要定义计算域:
class ListJson(BaseDatatableView):
columns = ["id", "status_code", "computed_field"]
order_columns = ["id", "status_code"]
# Override render_column method
def render_column(self, row, column):
if column == "computed_field":
return row.computed_field()
else:
return super(ListJson, self).render_column(row, column)
这允许您返回 computed_field 方法 value()。
当我们要对计算字段进行排序时,情况就变得复杂了。在这种情况下,最好在 JavaScript 中禁用服务器端操作
$.extend($.fn.dataTable.defaults, {
serverSide: false,
});
但是,您必须立即返回所有行,这可能会杀死服务器。
如果要在后端进行排序,则需要安排并返回带有虚拟字段的相应查询集。
class ListJson(BaseDatatableView):
def get_initial_queryset(self):
return qs
只需像这样构建您的查询。