在django中创建动态数据表视图的框架
django-data-tables的Python项目详细描述
django数据表是django的一个框架,它创建与模型相关的数据表来获取 通过ajax请求过滤数据,并允许对模型实例执行不同的操作。
这是一个图书馆的重新实施,它是在一个大的内部开发和大量使用的。 Studitemps GmbH.的企业软件。这种实现仍处于非常早期的开发阶段。 你可以四处玩玩,但在达到1.0.0版本之前,你会期待一些突破性的改变。
详细的文件仍在丢失,但希望很快会添加。
快速启动
一。将“django_data_tables”添加到设置中已安装的_应用程序中。py 像这样:
INSTALLED_APPS = [ ... 'django_data_tables', ... ]
2.在项目url.py中包含autodiscover和urlconf 像这样:
from django_data_tables.utils import autodiscover as ddt_autodiscover from django_data_tables import views as dt_views ddt_autodiscover() ... path('ddt/get_data/<table_name>/', dt_views.get_data, name='ddt-get_data'), path('ddt/action/<table_name>', dt_views.action, name='ddt-action'), ...
三。在需要的应用程序中创建tables.py 要创建这样的数据表:
import django_data_tables as ddt from .forms import MyEditForm class EditAction(ddt.FormAction): name = 'Edit' form_class = MyEditForm def success(self, form, obj): form.save() class BaseDataTable(ddt.DataTable): columns = [ ddt.IdColumn('id'), ddt.ModelFieldColumn('<some existing field e.g. "name">', ddt.ActionColumn('Do') ] filters = {'id_filter': ddt.IntFilter('id'),} actions = [EditAction,] model = '<your_app_name>.<YourModel>'
四。在视图中创建一个表呈现器实例并将其传递到 渲染器上下文。因此,在您的应用程序视图中执行以下操作:
from .tables import BaseDataTable ... def my_fancy_view(request): table = BaseDataTable().get_renderer(request) return render(request, 'app/my_views_template.html', {'table': table})
5个。在my_views_template.html中呈现表(非常类似 到django表单:
<html> <head> {{ table.media }} </head> <body> <h1>Example for a Django Data Table Renderer</h1> {{ table }} </body> </html>
6.像往常一样在url中创建到视图的路由 测试它