【问题标题】:Editable datatable in django, backed with mongodbdjango 中的可编辑数据表,由 mongodb 支持
【发布时间】:2012-03-10 01:53:25
【问题描述】:

我是 python、mongodb 和 django 世界的新手。 (来自 java ee 世界)

我的任务是将 mongodb 中的一些集合表示为 django 中的 html 表。 表应该是可编辑的,因此行、列和字段可以被编辑、添加、删除。 也可以设置其中一些:粗体、斜体等。

所以,编辑该表中的数据应该不会影响MongoDB中收集的数据,一旦用户满意就保存它。

我已经使用 pymongo 模块设置了 django 和 mongodb。还发现了这个项目:http://www.datatables.net/development/server-side/django

有人可以告诉我如何解决这个问题(可以利用模块/软件来加快速度)吗?

【问题讨论】:

    标签: python django mongodb datatable


    【解决方案1】:

    jquery dataTables 插件易于使用,它有助于对数据进行排序、分页和过滤。除非您有很多数据行,否则您可能不需要对数据表使用服务器端实现。您可以在 django 视图中以某种方式简单地构建表格,然后像这样使用 dataTables:

    $('#table-id').dataTable();
    

    排序等将起作用。仅当您必须由浏览器有效处理许多数据行(1000+)或流量限制比渲染速度更重要时(服务器端实现需要在每次过滤时等待 ajax 请求,服务器端实现才是真正必要的,使用排序或分页)。

    然而,DataTables 不提供编辑数据的功能。如果您不想为此编写自己的代码,您应该考虑使用 jeditable 或类似的插件。为了保存更改,您必须在 django 中创建一个处理程序(我认为视图是他们的调用方式)

    【讨论】:

    • 感谢 Joi 的澄清,我已经开始尝试使用 datatables.net,但是他们与 django 集成的示例应用程序不适用于 django 2.7
    • datatables 实际上只需要 django 以某种样式返回数据(即参见datatables.net/usage/server-side)。因此,如果您设法让 django 2.7 返回该样式的数据,这应该是可行的数据表将起作用
    【解决方案2】:

    您可以考虑 dojango-datatable,一个将 Dojo 工具包与 Django 集成的项目。

    对于您正在寻找的内容,我想您可能仍需要编写一些自定义代码。但它应该能让你朝着正确的方向开始。

    http://code.google.com/p/dojango-datable/

    Dojango Data Tables 允许您定义表格布局和列类型 在 Python 而不是 JS 或 HTML 中。它还包括一些模板标签 以可配置的方式创建 dojo.DataGrid 所需的 HTML 方式。

    如果 dojango-datatable 不够灵活,您可以尝试使用 django-piston 为 Django 创建 JSON 休息服务,然后使用 Dojo 或其他前端 UI 和休息服务来完成您需要的工作。

    对于 django-piston,请查看此讨论:Django and Restful APIs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多