如何在Djangodatatableview中呈现表?

2024-05-15 21:55:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道如何使用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 %}

我的观点是:

^{pr2}$

不幸的是,我的代码呈现如下:

enter image description here


Tags: httpssrcviewnetjsscriptstaticcdn
2条回答
{% block content %}
    {% if instances %}
        <table class='datatable'>
            <tr>
              <th>ID</th>
              <th>Name</th>
              <th>Country</th>
            </tr>
            {% for row in instances %}
                <tr>
                  <th> {{ row.id }}</th>
                  <th> {{ row.name }}</th>
                  <th> {{ row.country }}</th>
                </tr> 
            {% endfor %}
        </table>
    {% else %}
        <p>No data available</p>
    {% endif %}
{% endblock %}

作为第一步,请尝试运行埋在以下位置的示例项目:

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

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

一旦您完成了这一点,您将拥有一整套的工作示例和匹配的文档,这将使事情变得轻松一些。你提供的链接已过期。探索示例(example_app/views.py)和文档。在

当您准备好离开沙盒时,请遵循以下路线:

  1. 启动新的virtualenv

  2. 克隆这个分支:https://github.com/jangeador/django-datatable-view/(它还有一些提交,使它与最新版本的django兼容),并进行pip安装(如果您计划进行更改,请使用-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视图模块的datatableview.js(以及附带的datatableview.auto_initialize = true;)。如果你觉得数据表.js首先,您可以自己配置它,但是考虑到您也是django datatable视图的新手,这可能是最简单的方法。在

相关问题 更多 >