База данных postgres 9.4. В моей таблице я использую JSONField
class Item(models.Model):
item = models.CharField(max_length=200)
data = JSONField()
Пример данных JSONField из 3 записей:
{"color": ["yellow", "blue", "red"], "size": ["S", "L"], "material": "cotton"}
{"color": ["white", "blue", "gray"], "size": ["XL", "L"], "material": "cotton"}
{"color": ["yellow", "gray", "red"], "size": ["L", "XL"], "material": "cotton"}
Моя цель - создать список, содержащийколичество каждого цвета и размера:
цвет: желтый 2 синий 2 красный 2 серый 2 белый 1
размер: L 3 XL 2 S 1
Это возможно ? Что было бы лучшим решением с точки зрения производительности.
Пока мне удалось создать список, содержащий все существующие списки с:
Item.objects.values_list('data__color').distinct().annotate(num=Count('data_color'))
color:
["yellow", "blue", "red"], 1
["white", "blue", "gray"], 1
["yellow", "gray", "red"], 1