Django – 直接将模型数据显示到带有排序和分页功能的表格中
在这篇文章中,我们将学习如何在 Django 中创建一个表格来渲染模型数据。我们不会使用 HTML 的<table>标签。我们将使用一个简单的 Django 表格库,它提供直接在表格中显示 Django 模型数据并具有分页功能。
示例
首先,创建一个项目和一个应用程序,并设置 URL。
安装django_tables2包:
pip install django_tables2
在settings.py中:
INSTALLED_APPS+=["django_tables2"]
在models.py中,创建一个简单的模型进行测试:
from django.db import models # Create your models here. class Data(models.Model): Name=models.CharField(max_length=100) salary = models.CharField(max_length=20)
在urls.py中,添加一个 URL 并渲染表格视图:
from django.urls import path from . import views urlpatterns = [ path('table',views.TableView.as_view(),name='table') ]
现在在views.py中,添加以下几行:
from .models import Data # Create your views here. import django_tables2 as tables # this class will create the table just like how we create forms class SimpleTable(tables.Table): class Meta: model = Data # this will render table class TableView(tables.SingleTableView): table_class = SimpleTable queryset = Data.objects.all() template_name = "table_example.html"
在这里,我们创建了一个模型数据的表格,然后是一个视图,我们在其中定义了一个表格和一个查询。我们可以在此处使用过滤器查询和一个模板来显示表格。
创建templates文件夹,并在其中添加table_example.html文件,内容如下:
{% include 'material/includes/material_css.html' %} {% include 'material/includes/material_js.html' %} <!DOCTYPE html> <html> <head> <title>TUT</title> </head> <body> # these two will render the table {% load django_tables2 %} {% render_table table %} </body> </html>
在这里,我们加载了一些默认样式和django_tables2库,然后渲染我们在视图中创建的表格。
现在,让我们检查输出。
输出
广告