Как преобразовать экспорт Django QuerySet в один dictonary?
Как преобразовать экспорт Django QuerySet в один диктонарий?
Я хочу вставить Django QuerySet в качестве источника данных в DataTable для Bokeh
queryset = Model.objects.all()
qs = queryset.values()
qs = dict(qs)
header = [field.verbose_name for field in Model._meta.get_fields()]
columns = [TableColumn(field=col, title=col) for col in header]
source = ColumnDataSource(qs)
data_table = DataTable(source=source, columns=columns)
script, div = components(data_table)
qs = dict(qs)
^^^^^^^^
ValueError: dictionary update sequence element #0 has length 11; 2 is required
qs
не является словарем, это последовательность значений объекта (Queryset Values). Следовательно, вы можете привести его как словарь, но вы можете привести его как список (который будет списком словарей):
qs = list(qs)
Недостаточно загрузить в базу данных. Вам нужно построить словарь из этого списка:
qs_dict = {}
for item in qs:
for field in Model._meta.get_fields():
qs_dict[field.verbose_name] = qs_dict.get(field.verbose_name, []).append(item[field.name])
source = ColumnDataSource(qs_dict)