Size: a a a

Django [ru] #STAY HOME

2021 May 19

S

Stanley in Django [ru] #STAY HOME
у тебя записи по какому критерию группируются?
источник

S

Stanley in Django [ru] #STAY HOME
или покажи запрос кот внизу
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
.annotate(Count...
источник

S

Stanley in Django [ru] #STAY HOME
источник

DA

Dato Akobia in Django [ru] #STAY HOME
Мне нужно посчитать количество каждого элемента в списке, если просто Count сделать, как сейчас и есть, то он посчитает целый список сколько раз повторяется.
источник

DA

Dato Akobia in Django [ru] #STAY HOME
SELECT "influencers_influencer"."interests", COUNT("influencers_influencer"."interests") AS "total" FROM "influencers_influencer" WHERE NOT ("influencers_influencer"."interests" = '[]' AND "influencers_influencer"."interests" IS NOT NULL) GROUP BY "influencers_influencer"."interests"

Убираю пустые списки и группирую по интересам
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Это смотря к чему ты каунт приложишь)
источник

DA

Dato Akobia in Django [ru] #STAY HOME
Ну собственно говоря в этом и вопрос, наверно, как мне приложить каунт к каждому элементу списка)
источник

GM

Gnd Mln in Django [ru] #STAY HOME
Агреггирование
источник

S

Shodmon in Django [ru] #STAY HOME
попробуй посмотреть на аррай_ленз
источник

S

Stanley in Django [ru] #STAY HOME
меня смущает вот это -
"influencers_influencer"."interests" = '[]'
у тебя записи храняться в скобочках в БД и виде списка???
источник

S

Stanley in Django [ru] #STAY HOME
Тогда никак
источник

S

Stanley in Django [ru] #STAY HOME
источник

S

Stanley in Django [ru] #STAY HOME
везде скобочки
источник

S

Stanley in Django [ru] #STAY HOME
видимо так в БД хранятся данные
источник

S

Stanley in Django [ru] #STAY HOME
а запрос правильный
источник

DA

Dato Akobia in Django [ru] #STAY HOME
Так в БД хранятся данные, но я не проектировал БД, это не зависит от меня)

Ну так я от пустых фильтрую, получаю такой вывод и мне нужно найти количество элементов из списков, но кажется мне что без цикла и ручной отфильтровки тут не обойтись
источник

DA

Dato Akobia in Django [ru] #STAY HOME
Спасибо за помощь)
источник

A

A. in Django [ru] #STAY HOME
Добрый день. Подскажите, тут написан на версии 1.11, как переписать, чтобы работало на версии 3.2?
источник

DA

Dato Akobia in Django [ru] #STAY HOME
Сделал так:

from collections import Counter

interests = [i['interests']
for i in influencer.objects.exclude(interests=[]).values('interests').iterator()]
all_interests_in_one = [interest for sublist in interests for interest in sublist]
Counter(all_interests_in_one)

Получил вывод: Counter({'Online Shopping & Entertainment': 3441, 'Food, Lifestyle & Events': 3129, 'Photography': 3044, 'Sports, Fitness & Wellbeing': 2994, 'Travel & Cars': 2919, 'Social & Family': 2768, 'Music & Movies': 2579, 'Animals': 2128, 'Books, Magazines & Games': 2077, 'Education & Technology': 1993, 'Food': 1, 'Famiglia/Social': 1, 'Viaggi high cost': 1})
источник