将Datatables插件实现到'Django-tables2‘渲染表时出现问题。
我是django的初学者;我正在开发一个显示数据上传到数据库(postgresql)的应用程序,寻找通过普通的django CVB渲染包含大量数据的表的解决方案,我找到了django-tables2。我已经能够实现它并显示渲染表(在加载速度上有一个重要的改进),另外,对于我所有的表,我已经实现了'Datatables‘插件和一些聚合器,但我还没有解释如何让它们与django-tables2渲染的表一起工作,就像那些与我所有的其他数据表(不是由django-tables2渲染的)一样;直到现在,唯一部分部分工作的是CSS,但是响应和colReorder不工作。
正如官方文档所解释的那样,我尝试在模板中直接指定“静态”文件路由,但它不起作用。
我正在使用的HTML模板继承了一个'base‘模板,它实现了所有css/js静态文件,并覆盖了一个内容块,其中是数据表呈现的位置。
作为参考,我的代码是:
Views.py
class Data_t_zq70(tables.Table):
class Meta:
model = datos
attrs = {
'class': 'table table-sm text-center table-striped table-
bordered table-hover id=dataTable'}
fields = ['Insp_Lot', 'Description', 'Date', 'Material',
'Batch', 'Mean_Valuation', 'Mean', 'Lower_Limit', 'Target',
'Upper_Limit', 'Delvry_Quantity']
per_page = 10
class zq_70(LoginRequiredMixin, SingleTableView):
model = datos
table_class = Data_t_zq70
template_name = 'data_list_zq70.html'
login_url = 'base:login'
HTML Template:
{% extends 'base/base.html' %}
{% load static %}
{% load django_tables2 %}
{% block contenido %}
<div class="panel panel-info">
<div class="panel-heading">
<a href="{% url 'data:data_upload' %}" class="btn btn-
info"><span class="fa fa-plus-circle"> <strong>
Cargar datos</strong></span></a>
</div>
<div class="panel-body">
{% render_table table %}
</div>
</div>
{% endblock contenido %}尽管数据表被渲染了,但“datatables”插件中的一些元素并没有像“搜索”框、“显示xx条目”框等那样显示出来。
发布于 2019-01-27 04:33:50
与django-tables2提供的表格模板相比,datatables需要不同的html元素。我认为实现一个从the supplied templates派生的自定义模板,添加数据表所需的元素是可行的。
django-tables2可能不是渲染数据表的最佳解决方案,但是,您研究过django-datatables-view吗
发布于 2020-10-20 01:55:44
我知道django-datatables-view可以直接用来渲染表格,但是如果你真的想通过django-table2上的插件来使用datatable的特性,这就是用attrs编写table.py的方法。
from django_tables2 import tables
from .models import MyModel
class MyModelTable(tables.Table):
class Meta:
model = MyModel
# This is a hack for using datatable at the frontend
attrs = {
'id' : 'example', #Rename the value to match with datatable id
'class': 'display', #Change this class value according to the documentation
'style': 'width:100%'
} 并将数据库特定的css/js包含到您的html模板中。
同样,这绝对不是在django中使用datatable的理想方式,但祝您玩得开心!
https://stackoverflow.com/questions/54270921
复制相似问题