Я решил это для проекта сегодня, на самом деле это было довольно просто.
Определить новую таблицу
В пределах 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)
Затем настройте таблицу, вставьте ее в контекст и отправьте в шаблон как обычно.У вас будет таблица с двумя столбцами, показывающая все данные из строки вашей базы данных.