python - 如何在 django-datatable-view 中渲染表格?

标签 python django datatable html-table

我不知道如何使用 Django-datatable-view 呈现可编辑表格。我想创建一个完全像这样的表:http://django-datatable-view.appspot.com/x-editable-columns/例如,来自模型 City

我已阅读文档和教程,但仍然不知道如何创建表。

这是我到目前为止所做的:

{% extends "base.html" %}
{% block head %}
    {% load static %}e
    <link rel="stylesheet" href="https://cdn.datatables.net/1.10.12/css/dataTables.bootstrap.min.css">
    <script src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script>
    <script src="https://cdn.datatables.net/1.10.12/js/dataTables.bootstrap.min.js"></script>
    <script src="{% static "datatable/js/datatableview.min.js" %}"></script>
    <script>
        datatableview.auto_initialize = false;
        $(function () {
            var xeditable_options = {};
            datatableview.initialize($('.datatable'), {
                fnRowCallback: datatableview.make_xeditable(xeditable_options),
            });
        })
    </script>
{% endblock %}
{% block content %}
    {{ datatable }}
    {{ object_list }}
{% endblock %}

我的观点是:

class ZeroConfigurationDatatableView(dtv_views.XEditableDatatableView):
    model = dolava_models.City

    datatable_options = {
        'columns': [
            'id',
            ("Name", 'name', dtv_helpers.make_xeditable),
            ("Country", 'country', dtv_helpers.make_xeditable),

        ]
    }

不幸的是我的代码呈现了这个:

enter image description here

最佳答案

第一步,尝试运行隐藏在以下位置的示例项目:

django-datatable-view/datatableview/tests/example_project/example_project/example_app

为此,请按照 Documentation and Live Demos 操作在项目 github 页面上,但在开始之前请务必将 django>=1.4 替换为 django==1.8。也就是说,根据我的经验,它与django1.9或1.10不兼容。

完成此操作后,您将拥有一整套工作示例和匹配的文档,这将使事情变得更加轻松。您提供的链接已过期。浏览示例 (example_app/views.py) 和文档。

当您准备好退出沙箱时,请按照以下路线操作:

  1. 启动一个新的虚拟环境

  2. 克隆此分支:https://github.com/jangeador/django-datatable-view/(它还有一些提交,使其与最新版本的 django 兼容)和 pip install(如果您打算进行更改,请使用 -e 可编辑选项)。

  3. 遵循此示例 Datatable object and Meta来自您运行的示例应用程序。在代码中:

    class MyDatatable(Datatable):
        class Meta:
            model = Entry
            columns = ['id', 'headline', 'pub_date', 'n_comments', 'n_pingbacks']
            ordering = ['-id']
            page_length = 5
            search_fields = ['blog__name']
            unsortable_columns = ['n_comments']
            hidden_columns = ['n_pingbacks']
            structure_template = 'datatableview/default_structure.html'
    
    class ConfigureDatatableObjectDatatableView(DatatableView):
        model = Entry
        datatable_class = MyDatatable
    

如果不需要,您可以删除 Datatable 类中的所有属性(它们是可选的)。

除了文档之外,我还必须重写 DataTableView 类上的以下方法才能使其正常工作。

def get_template_names(self):
    return "example_base.html"

这是您的模板文件,需要包含:

<script src="{% static 'path-to/datatables.min.js' %}" type="text/javascript"></script>
<link href="{% static 'your-path-to/datatables.min.css' %}" rel="stylesheet">

<script type="text/javascript" src="{% static 'js/datatableview.js' %}"></script>

{{ datatable }}

<script>
    // Page javascript
    datatableview.auto_initialize = true;
</script>

这里值得注意的是 django-datatable-view 模块中包含的 datatableview.js (以及随附的 datatableview.auto_initialize = true;)。如果您对 datatables.js 一开始就感到满意,您可以继续自己配置它,但考虑到您也是 django-datatable-view 的新手,这可能是最简单的路线。

关于python - 如何在 django-datatable-view 中渲染表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39097427/

相关文章:

python - 在 pandas 中使用 bool 数组索引对象的最惯用方法是什么?

python - 如何从文件加载多个正则表达式模式并匹配给定的字符串?

python - 将 django ImageField 与 Tastypie 结合使用

jquery - DataTable jquery - 如何从第一列中删除排序图标?

javascript - 如何从数据表内的链接调用 Vue.js 方法?

python - Durand-kerner 实现不起作用

python - Numba - nopython 模式比对象模式慢?

django - python 社交身份验证中的多个管道

django - ModuleNotFoundError : No module named 'registration'

javascript - 对数据表进行排序