2013-03-11 4 views
0

매우 간단합니다 ... Django 1.4.1을 사용 중이며 이에 대한 주석의 수를 역으로하여 쿼리 세트를 주문해야합니다. 장고 주석 프레임 워크를 사용하고 있습니다. 주석을 사용하려고했습니다. (comment_count = Count ('comment') 구조체가 다른 답변에서 추천되었습니다 ... '의견을 받으면'필드 오류가 해결되지 않습니다.Django : 주문 수는 다음과 같이 코멘트 수로 설정됩니다.

그 밖으로 그래서

는 또한, 데이터베이스 오류가 발생 장고 - 일반적인 집계의 0.3.1 버전을 시도했습니다.

Photo.objects.filter(galleries=gallery).annotate(comment_count=Count('comments')).order_by('-comment_count')[(page-1)*RESULTS_PER_PAGE:page*RESULTS_PER_PAGE] 

어떤 제안?

+0

내가 혼란 스러워요은'Photo' 모델 –

+0

관련 내용으로 질문을 업데이트하시기 바랍니다 ... 코멘트 시스템은 장고에 내장되어 있습니다. 모든 모델에 부착됩니다. 사진 모델 구조 자체는 관련이 없으며, 코멘트 수로 위젯을 주문할 수도 있습니다. –

+0

내 의견을 무시하십시오. 주석 달기 앱이'GenericForeignKey'를 사용한다는 것을 알지 못했기 때문에'Photo' 모델과 관련된 명시 적 참조가 필요하지 않습니다. 현재하려는 일은 현재 가능하지 않을 수도 있습니다. [here] (https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#generic-relations-and-aggregation) –

답변

0

을 사진 모델에 따라 기능을 넣어

class Photo(models.Model): 
    ......... 

    def orders(self): 
     //filter first the highest count of comments 
     aggregate = Photo.objects.aggregate(comment_count=Count('comments')) 
     return aggregate['comment_count'] + 1 

그런 다음보기에서 다음과 같이 호출 할 수 있습니다 :

comments = Photo.objects.filter(galleries=gallery).orders() 
+0

캐서린에게 감사드립니다! 나는 혼란 스럽다. 나는 comment_count가 내 queryset을 주문하려고 노력하고있다 ...이 방법이 그렇게 할 것인가? (마법의 메서드 이름을 주문 하시겠습니까?) –

+0

나는 배지 모델을 가지고 있으며 그 점을 기반으로 사용자의 순위를 얻어야하므로 그렇게 할 수 있습니다. 나는 네 편이 아니다. 그냥 시도해 보라. 작동하지 않으면 문제가 해결 될 때까지 다른 것을 시도 할 것입니다 :) – catherine