2010-04-11 8 views
0

나는 다음과 같은 모델을 가지고 : 당신이 볼 수 있듯이장고 종류 manytomany 관계에 의해

services_list = Service.objects.filter(ratings__gt=0).distinct() 
services_list = list(services_list) 
services_list.sort(key=lambda service: service.ratings.all().count(), reverse=True) 

: 뭔가를했다 I 내림차순으로 정렬 등급으로 모든 서비스를받을 싶다면 지금

class Service(models.Model): 
    ratings = models.ManyToManyField(User) 

을 그것의 3 단계 과정 및 나는 이것에 관하여 바르게 느끼지 않는다. 이 일을하는 더 좋은 방법을 아는 사람?

답변

3

방법에 대해 :

service_list = Service.objects.annotate(ratings_num=Count('ratings')).filter(ratings_num__gt=0).order_by('-ratings_num') 
+0

달콤한! 감사!!! – Marconi

+0

+1 이것은 awsome .... thnks입니다. – suhailvs

관련 문제