Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 8, 2009 19:24:32

niro
От:
Зарегистрирован: 2006-10-04
Сообщения: 178
Репутация: +  0  -
Профиль   Отправить e-mail  

Еще раз о выборке

Модель

class Subscribe(models.Model):
user = models.ForeignKey(User, related_name = 'friend')
who = models.ForeignKey(User, blank=True, related_name = 'forfriend')
Примерный вид таблицы
user    who
----------------
user1 user2
user3 user2
user4 user3
user2 user3
user1 user3
user4 user2
user4 user3
user1 user4
Т.е. можно несколько раз добавлять других пользователей, но не себя самого.

Необходимо передать шаблону пользователей из столбца who и число вхождений каждого, в порядке убывания в зависимости от количества, например:
user3   4
user2 3
user4 1



Отредактировано (Фев. 8, 2009 19:25:01)

Офлайн

#2 Фев. 8, 2009 22:28:13

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Еще раз о выборке

lorien
Что-то не понял я твою логику…

niro
Необходимо передать шаблону пользователей из столбца who и число вхождений каждого, в порядке убывания в зависимости от количества, например:
 User.objects.annotate(count=Count("forfriend")).filter(count__gt=0).order_by("-count")



Офлайн

#3 Фев. 9, 2009 09:07:08

niro
От:
Зарегистрирован: 2006-10-04
Сообщения: 178
Репутация: +  0  -
Профиль   Отправить e-mail  

Еще раз о выборке

lorien
for item in Subscribe.objects.annotate(foo=Count('user')).order_by('-foo'): print item.who, foo
global name ‘foo’ is not defined



Офлайн

#4 Фев. 9, 2009 19:38:26

niro
От:
Зарегистрирован: 2006-10-04
Сообщения: 178
Репутация: +  0  -
Профиль   Отправить e-mail  

Еще раз о выборке

Daevaorn Спасибо



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version