У меня есть список объектов, которые можно вызывать по имени.У них есть числовые значения, которые могут вводить пользователи.Как бы я повернул каждый из этих списков, чтобы сформировать диаграмму, которую js может визуализировать?Я попытался с этим: Django Queryset диктовать для использования в json , но не смог заставить его работать.Получение «Объект типа QuerySet не является сериализуемым JSON».Диаграмма JS должна иметь собственную строку для каждого из этих списков и отображать значения в этих строках.Вот как далеко я зашел по ссылке в просмотров :
Сначала я получаю все списки пользователей:
user_lists = List.objects.filter(user=user)
Затем я получаю числовые значения для каждого списка
list_data = {}
for list in user_lists:
list_data[list.name] = DataItem.objects.filter(list=list)
Здесь я застреваю, когда мне нужно преобразовать эти списки во что-то, что может понять chart.js ..
list_data_json = json.dumps(list_data, cls=DjangoJSONEncoder)
Кстати, я на правильном пути, чтобы превратить это преобразование в представления, верно?или он принадлежит где-то еще?
Не знаю, нужны ли они, но вот модели для этих списков и элементов данных в них:
class List(models.Model):
name = models.CharField(max_length=100, default="")
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='lists')
def __str__(self):
return self.name
class Meta:
unique_together = ['name', 'user']
class DataItem(models.Model):
data = models.IntegerField(default=0)
list = models.ForeignKey(List, on_delete=models.CASCADE, related_name='data_items')
EDIT выходной набор запросов выглядит следующим образом (вот что пытается прочитать json.dumps):
<QuerySet [{'name': 'squat', 'data_items__data': 1}, {'name': 'deadlift', 'data_items__data': 55}, {'name': 'Chest', 'data_items__data': None}, {'name': 'asd', 'data_items__data': 444}, {'name': 'asd', 'data_items__data': 32342}, {'name': 'asd', 'data_items__data': 42342}]>
И для меня это выглядит неплохо, есть список списков и списокимеет имя «приседания», а затем значения.Но снова получаю эту ошибку «Объект QuerySet не вызывается»