我今天为一个项目解决了这个问题,它实际上相当简单。
定义一个新表
在tables.py
中,定义一个包含两列的表。让我们调用第一列name
和第二列value
:
class RowTable(tables.Table):
name = tables.Column()
value = tables.Column()
class Meta:
template = 'django_tables2/bootstrap.html'
attrs = {'class': 'table table-striped table-responsive'}
在您的视图中,将数据绑定到表
然后,在您看来,您需要从数据库中提取实例(行),并使用字典填充表:
row_instance = Model.objects.get(foo=foo.id)
#Extract column data from instance be sure it is string!
height = str(row_instance.height)
weight = str(row_instance.weight)
nationality = row_instance.nationality
#Create dictionary of data in form table will recognize
row_data =[ {'name': 'height', 'value': height},
{'name': 'weight', 'value': weight},
{'name': 'nationality', 'value': nationality} ]
#Bind to table and configure
table = RowTable(row_data)
然后配置表,放入上下文并像往常一样发送到模板。您将有一个包含两列的表,其中显示了数据库行中的所有数据。