Как определить столбцы из ключей словаря с помощью Django tables 2?
Я хочу создать таблицу из нескольких объектов из модели Django под названием MyModel.
Данные хранятся в JSONField под названием weights с datetime в качестве ключа, как это {"2022-05-01T05:00:00Z": 0.123}. Имя колонки должно быть из поля CharField под названием name.
Как видно из приведенного ниже кода, я перебираю объекты и создаю Pandas Series для извлечения значений и заполнения словаря. Но как я могу сказать tables взять имя столбца из ключа словаря? Есть ли возможность передать имена столбцов непосредственно списком?
view.py
class MyappDetailView(SingleTableMixin, generic.DetailView):
model = Country
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
dic = dict()
for obj in MyModels.objects.filter(one_field=self.object):
s = pd.Series(obj.weights)[-15 * 24:] * 100
dic['Datetime'] = s.index.tolist()
dic[obj.name] = s.values.tolist()
table_2 = WeightTable(dic)
context['table'] = table_2
return context
table.py
import django_tables2 as tables
class WeightTable(tables.Table):
Datetime = tables.Column()
for k in dic.keys():
k = tables.Column() # here I would like to declare the name of the columns fom the key
...