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库,然后渲染我们在视图中创建的表格。

现在,让我们检查输出。

输出

更新于:2021年8月26日

2K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告